是否可以使用 pip 模块在 python 3 项目中使用 cx_freeze ?
Posted
技术标签:
【中文标题】是否可以使用 pip 模块在 python 3 项目中使用 cx_freeze ?【英文标题】:Is it possible to use cx_freeze on a python 3 project using the pip module? 【发布时间】:2016-02-20 19:16:21 【问题描述】:我正在为我正在编写的一个更大的程序编写一个安装程序,我正在使用 CxFreeze 将其转换为可执行文件,但是,当我运行 .exe 文件时,它会因“import pip”行而崩溃,并提出(如下所示),所以基本上我的问题是:是否可以在导入 pip 的应用程序上使用 CxFreeze?
编辑: 以下是我正在使用的所有文件:
setup.py (V1):
from cx_Freeze import *
import os, pip
setup(name=("ARTIST"),
version = "1",
description = "ARTIST installation file",
executables = [Executable("Install ARTIST.py"), Executable("C:\\Python34\\Lib\\site-packages\pip\\__init__.py")],
)
这会引发错误:
setup.py (V2):
from cx_Freeze import *
import os, pip
setup(name=("ARTIST"),
version = "1",
description = "ARTIST installation file",
executables = [Executable("Install ARTIST.py"],
options = "build_exe": "packages":[pip]
)
这会导致setup.bat
文件中出现错误:
编辑: 如果有人想查看我发布更大程序的网站,这里是链接: alaricwhitehead.wix.com/artist
编辑2: 这是我使用 py2exe 时遇到的错误:
编辑3: 这是代码的副本: https://www.dropbox.com/s/uu46iynm8fr8agu/Install%20ARTIST.txt?raw=1
请注意:我本来不想发链接,但是直接发太长了。
【问题讨论】:
能否请您发布您的设置文件 @DeliriousSyntax 看看我的编辑cx_Freeze
使用setup.py
文件将程序转换为可执行文件。这是我要的文件。 How to create a cx_Freeze setup file
我觉得还是直接粘贴到setup.py中比较好,后面的人更容易在这里获得所有相关信息。死链接不好玩。
@DeliriousSyntax 看看我的编辑
【参考方案1】:
您的安装脚本中有两个问题。第一个问题是您在build_exe
命令的packages
选项下指定了要包含在冻结应用程序中的额外模块:packages
用于指定需要包含应用程序的哪些包,用于外部模块(例如作为pip
) 你需要使用includes
。第二个问题是您需要将模块字符串列表而不是模块本身传递给includes
:
setup(
name=("ARTIST"),
version="1",
description="ARTIST installation file",
options=
'build_exe':
'excludes': [], # list of modules to exclude
'includes': ['pip'], # list of extra modules to include (from your virtualenv of system path),
'packages': [], # list of packages to include in the froze executable (from your application)
,
,
executables=[
Executable(
script='run.py', # path to the entry point of your application (i.e: run.py)
targetName='ARTIST.exe', # name of the executable
)
]
)
【讨论】:
您还应该在代码上方说明为什么它不起作用或如何修复它 我以为我确实做到了。可能从我当地的编辑那里复制和粘贴删除了解释。我会在一分钟内添加它。 是的,在编辑帖子后不知何故被删除了,我重新添加了它,重新措辞并希望能澄清问题。 好的,谢谢,我会调查一下。当 OP 测试你的答案时,我会奖励你。 你能分享你试图冻结的python脚本吗?否则我不知道为什么它不起作用,因为安装脚本应该是“好的”以上是关于是否可以使用 pip 模块在 python 3 项目中使用 cx_freeze ?的主要内容,如果未能解决你的问题,请参考以下文章
通过 pip (PyPI) 安装 Python 实时依赖项 [重复]