[英]Creating cx_Freeze exe with Numpy for Python
我正在嘗試使用 cx_Freeze 創建一個基本的 exe。 它適用於沒有 numpy 的 .py 程序,但我無法使用 numpy 正確制作一個程序。
*有想法該怎么解決這個嗎? 我需要在我的 setup.py 中包含什么嗎?
當我 go 運行 exe 時,它說:
c:\Python32\Scripts\dist>Assignment4_5.exe
Traceback (most recent call last):
File "C:\Python32\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 2
7, in <module>
exec(code, m.__dict__)
File "c:\Python32\Assignment4_5.py", line 6, in <module>
import numpy as np
File "C:\Python32\lib\site-packages\numpy\__init__.py", line 137, in <module>
from . import add_newdocs
File "C:\Python32\lib\site-packages\numpy\add_newdocs.py", line 9, in <module>
from numpy.lib import add_newdoc
File "C:\Python32\lib\site-packages\numpy\lib\__init__.py", line 17, in <modul
e>
from .npyio import *
File "C:\Python32\lib\site-packages\numpy\lib\npyio.py", line 6, in <module>
from . import format
ImportError: cannot import name format
c:\Python32\Scripts\dist>
安裝.py:
from cx_Freeze import setup, Executable
includeDependencies = []
setup(
name = "Assignment4_5PythonExe",
version = "0.1",
description = "Sort Methods",
executables = [Executable("Assignment4_5.py")]
)
Numpy 似乎對 cx_Freeze 有點混亂,因此您需要明確聲明它。 正如文檔中所引用的
這是您的解決方案:
from cx_Freeze import setup, Executable
build_exe_options = {"packages": ["numpy"]}
setup(
name = "Assignment4_5PythonExe",
version = "0.1",
description = "Sort Methods",
options = {"build_exe": build_exe_options},
executables = [Executable("Assignment4_5.py")]
)
我最近在使用 cx_freeze 6.1 和 Python 3.5.4 時遇到了這個問題。 為了解決我的運行時問題,我不得不在運行時將 numpy 庫路徑添加到系統路徑。 這是相關的代碼片段,如果它可以幫助任何人:
if __name__ == '__main__':
# The frozen app needs the numpy path added to it's file.
try:
this_file = __file__
except NameError:
this_file = sys.argv[0]
sys.path.insert(0, str(Path(this_file).absolute().parent / "lib" / "numpy"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.