在Ubuntu下编译Cx-Freeze

时间:2014-08-03 18:19:01

标签: python linux ubuntu executable cx-freeze

整天都在尝试在Ubuntu 14.04下编译cx-Freeze并且没有运气。所以我放弃了,决定在这里问专家。

我有什么

  1. Ubuntu 14.04
  2. Python 3.4
  3. python-dev,python3-dev,python3.4-dev安装(我知道这个常见问题)
  4. cx-Freeze的来源4.3.3
  5. 我尝试了两种方法:

    1. 从源代码安装
    2. 通过pip安装
    3. 从源代码安装

      sudo python3 setup.py install
      

      我得到了什么

      很多

      MyPath/cx_Freeze-4.3.3/source/bases/Console.c:24: undefined reference to `PyErr_Print'
      MyPath/cx_Freeze-4.3.3/source/bases/Console.c:24: undefined reference to `Py_FatalError'
      

      然后

      collect2: error: ld returned 1 exit status
      error: command 'i686-linux-gnu-gcc' failed with exit status 1
      

      按点安装

      sudo pip3 install cx-Freeze
      

      我得到了什么

      collect2: error: ld returned 1 exit status
      

      错误:命令'i686-linux-gnu-gcc'以退出状态1

      失败
      ----------------------------------------
      Cleaning up...
      Command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/cx-Freeze/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-c954v7x6-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/cx-Freeze
      Storing debug log for failure in /home/grimel/.pip/pip.log
      

      和pip.log

      Exception information:
      Traceback (most recent call last):
        File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 122, in main
          status = self.run(options, args)
        File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 283, in run
          requirement_set.install(install_options, global_options, root=options.root_path)
        File "/usr/lib/python3/dist-packages/pip/req.py", line 1435, in install
          requirement.install(install_options, global_options, *args, **kwargs)
        File "/usr/lib/python3/dist-packages/pip/req.py", line 706, in install
          cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
        File "/usr/lib/python3/dist-packages/pip/util.py", line 697, in call_subprocess
          % (command_desc, proc.returncode, cwd))
      pip.exceptions.InstallationError: Command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/cx-Freeze/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-c954v7x6-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/cx-Freeze
      

      所以,我希望你能帮助我解决这个问题,并且非常感激:)

3 个答案:

答案 0 :(得分:14)

setup.py 字符串

if not vars.get("Py_ENABLE_SHARED", 0):

替换为

if True:

感谢 Thomas K

答案 1 :(得分:6)

来自cx_freeze/issues

下载

您需要download the source code

对于python 3.3和3.4:

  1. sudo apt-get install python3-dev

  2. sudo apt-get install libssl-dev

  3. 打开setup.py并更改行

    if not vars.get("Py_ENABLE_SHARED", 0):

    if True:

  4. python3 setup.py build

  5. sudo python3 setup.py install
  6. 对于python 2.7:

    1. sudo apt-get install python-dev

    2. sudo apt-get install libssl-dev

    3. 打开setup.py并更改行

      if not vars.get("Py_ENABLE_SHARED", 0):

      if True:

    4. python setup.py build

    5. sudo python setup.py install

答案 2 :(得分:-1)

看起来你可能有拼写错误 变化

 sudo pip3 install cx-Freeze

 sudo pip3 install cx_Freeze