我试图将python项目冻结为exe。当我在目录" Notifier"中打开命令提示符时并运行cxfreeze notifier/main.py
,项目正确编译。我试图从setup.py中获得相同的结果,这样当我运行python setup.py build_exe
时,就像以前一样创建一个带有依赖关系的exe。
这是目录结构:
Notifier/
|notifier/
|- __init__.py
|- main.py
|- sender.py
|- request.py
|setup.py
当我运行python setup.py build_exe
时,我注意到Missing Modules:
下有sender imported from main__main__
。当我从Notifier/build/exe.win32-2.7
运行main.exe时,会发生以下错误。
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\cx_Freeze\initscripts\Console.py", line 27, in <module>
exec(code, m.__dict__)
File "notifier/main.py", line 1, in <module>
ImportError: No module named sender
这是我的setup.py:
from cx_Freeze import setup, Executable
import requests.certs
options = {
'build_exe': {
'include_files': [(requests.certs.where(), 'cacert.pem')]
}
}
setup(
name='Notifier',
version='0.1',
license='MIT',
author='David Corbin',
#install_requires=['requests', 'websocket', 'cx_Freeze'],
options=options,
executables=[Executable("groupmenotifier/main.py")]
)
答案 0 :(得分:0)
您需要__init__.py
文件夹中名为notifier
的文件。
答案 1 :(得分:0)
我必须将groupmenotifier/
目录添加到搜索路径中,以便cxfreeze可以找到并使用它。
sys.path.append(os.getcwd()+"\\groupmenotifier")