Как да използвам cx_freeze?

Създадох моя файл setup.py според инструкциите, но всъщност... не разбирам какво да правя след това. Въвеждането на "python setup.py build" в командния ред просто получава синтактична грешка.

И така, какво да правя?

setup.py:

from cx_Freeze import setup, Executable

setup(
    name = "On Dijkstra's Algorithm",
    version = "3.1",
    description = "A Dijkstra's Algorithm help tool.",
    exectuables = [Executable(script = "Main.py", base = "Win32GUI")])

person Edwin    schedule 27.03.2012    source източник
comment
Можете ли да ни покажете setup.py, вашата версия на Python?   -  person wkl    schedule 27.03.2012
comment
@birryree: Вижте редактирания въпрос.   -  person Edwin    schedule 27.03.2012
comment
каква е синтактичната грешка? Можете ли да публикувате проследяване?   -  person aquavitae    schedule 27.03.2012
comment
@aquavitae Това е в командния ред. Може ли някой да изясни къде трябва да поставя python setup.py build, защото инструкциите, които прочетох, не го изясняват.   -  person Edwin    schedule 27.03.2012
comment
Мисля, че проблемът ви е, че exectuables е написано неправилно. Трябва да е executables.   -  person wkl    schedule 27.03.2012
comment

Използвам Twitter Bootstrap v 2.0.1 и дадох на таблицата си класа table-striped. Опитвам се да променя цвета на ред, ако щракна. Това работи чудесно с изключение на всеки n:ти ред, който няма цвят на ивицата. Предполагам, че първо трябва да премахна раирания цвят, но опитът ми е неуспешен. Някаква идея какво пропускам?

HTML

<table class="table table-bordered table-condensed table-striped">
        <thead>
            <tr>
                <th>Col 1</th>
                <th>Col 2</th>
                <th>Col 3</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><strong>Data 1</strong></td>
                <td>Data 2</td>
                <td>Data 3</td>
            </tr>
            <tr>
                <td><strong>Data 1</strong></td>
                <td>Data 2</td>
                <td>Data 3</td>
            </tr>
            <tr>
                <td><strong>Data 1</strong></td>
                <td>Data 2</td>
                <td>Data 3</td>
            </tr>
        </tbody>
    </table>

Моите опити за jQuery:

<script type="text/javascript">


$(document).ready(function(){

    $('tr').click( function() {
        $(this).siblings().removeClass('table-striped');
        //$(this).css('background-color', '#ff0000').siblings().removeClass('table-striped');
     });
});

</script>

какво правя грешно

  -  person Edwin    schedule 27.03.2012
comment
Стартирате python setup.py build от системния команден ред (команден ред, терминал), а не от обвивка на Python.   -  person Thomas K    schedule 28.03.2012
comment
@aquavitae: Успях да взема тази екранна снимка: upload.shaiex.net/files/139/ cxfreezeerror.png   -  person Edwin    schedule 28.03.2012


Отговори (5)


  • Добавете import sys като нова горна линия
  • Вие сте написали грешно "изпълними файлове" на последния ред.
  • Премахнете script = на последния ред.

Сега кодът трябва да изглежда така:

import sys
from cx_Freeze import setup, Executable

setup(
    name = "On Dijkstra's Algorithm",
    version = "3.1",
    description = "A Dijkstra's Algorithm help tool.",
    executables = [Executable("Main.py", base = "Win32GUI")])

Използвайте командния ред (cmd), за да стартирате python setup.py build. (Изпълнете тази команда от папката, съдържаща setup.py.) Забележете параметъра build, който добавихме в края на извикването на скрипта.

person Bryan    schedule 26.11.2012
comment
Каква е целта на базата и какво ще стане, ако искам моят изпълним файл да работи на множество платформи? - person Max; 15.07.2016

Наистина не съм сигурен какво правите, за да получите тази грешка, изглежда, че се опитвате да стартирате cx_Freeze самостоятелно, без аргументи. И така, ето кратко ръководство стъпка по стъпка как да го направите в Windows (Екранната ви снимка изглежда по-скоро като командния ред на Windows, така че предполагам, че това е вашата платформа)

  1. Напишете вашия файл setup.py. Вашият скрипт по-горе изглежда правилен, така че трябва да работи, ако приемем, че вашият скрипт съществува.

  2. Отворете командния ред (Start -> Run -> "cmd")

  3. Отидете до местоположението на вашия файл setup.py и стартирайте python setup.py build

Бележки:

  1. Възможно е да има проблем с името на вашия скрипт. „Main.py“ съдържа главни букви, което може да доведе до объркване, тъй като имената на файловете на Windows не са чувствителни към малки и големи букви, но python е. Моят подход е винаги да използвам малки букви за скриптове, за да избегна всякакви конфликти.

  2. Уверете се, че python е във вашия PATH (прочетете http://docs.python.org/using/windows.html)1

  3. Уверете се, че разглеждате новата документация на cx_Freeze. Изглежда, че Google често показва старите документи.

person aquavitae    schedule 29.03.2012
comment
'python' не се разпознава като вътрешна или външна команда, работеща програма или пакетен файл. - person Edwin; 29.03.2012
comment
python: не може да отвори файл 'setup.py': [Errno 2] Няма такъв файл или директория Въвеждането на python в получава командния ред на Python, както се очаква, така че не разбирам тази грешка. Моят файл е в папката Python31. - person Edwin; 29.03.2012
comment
Използвайте cd, за да преминете към директорията, където се намира вашият setup.py файл. - person Thomas K; 30.03.2012
comment
@ThomasK: Това го направи! Всъщност никога преди не съм използвал командния ред, така че трябва да го напътствам като малко дете. Благодаря за помощта на всички. - person Edwin; 30.03.2012

Сблъсках се с подобен проблем. Реших го, като зададох опциите за изпълним файл в променлива и след това просто извиках променливата. По-долу е примерен setup.py, който използвам:

from cx_Freeze import setup, Executable
import sys

productName = "ProductName"
if 'bdist_msi' in sys.argv:
    sys.argv += ['--initial-target-dir', 'C:\InstallDir\\' + productName]
    sys.argv += ['--install-script', 'install.py']

exe = Executable(
      script="main.py",
      base="Win32GUI",
      targetName="Product.exe"
     )
setup(
      name="Product.exe",
      version="1.0",
      author="Me",
      description="Copyright 2012",
      executables=[exe],
      scripts=[
               'install.py'
               ]
      ) 
person Cesar    schedule 05.04.2012

Можете да промените кода setup.py на следното:

    from cx_freeze import setup, Executable
    setup( name = "foo",
           version = "1.1",
           description = "Description of the app here.",
           executables = [Executable("foo.py")]
         )

Сигурен съм, че ще работи. Пробвал съм го и на двата windows 7, както и на ubuntu 12.04

person Pratik Singhal    schedule 11.10.2013

намерете скрипта cxfreeze и го стартирайте. Той ще бъде по същия път като другите ви помощни скриптове на python, като pip.

cxfreeze Main.py --target-dir dist

прочетете повече на: http://cx-freeze.readthedocs.org/en/latest/script.html#script

person gcb    schedule 24.07.2015