我正在尝试使用PyInstaller(开发版)为Windows将Python脚本包装到exe中.
该脚本使用Pandas,我在运行exe时遇到了错误.
Traceback (most recent call last): File "site-packages\pandas\__init__.py", line 26, in <module> File "C:\Users\Eddie\Anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
exec(bytecode, module.__dict__) File "site-packages\pandas\_libs\__init__.py", line 4, in <module> File "C:\Users\Eddie\Anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 714, in load_module
module = loader.load_module(fullname) File "pandas/_libs/tslib.pyx", line 1, in init pandas._libs.tslib ModuleNotFoundError: No module named 'pandas._libs.tslibs.timedeltas'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "G5k Version file Extract (with tkinter).py", line 15, in <module> File "C:\Users\Eddie\Anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
exec(bytecode, …Run Code Online (Sandbox Code Playgroud) 我制作了一个包含 5-6 个 .py 文件的小型 PyQt 应用程序。现在我想将它们构建并编译成一个主文件,这意味着它必须从一个主窗口 exe 中运行。
我的 .py 文件已成功相互连接。我已经使用 pyinstaller 来制作可执行文件,但问题是我将每个 .py 文件构建到了自己的 .exe 文件中。但我想制作一个 .exe 文件,通过它可以使用所有 .py 文件。
如何将所有 .py 文件构建为单个 .exe 文件?
所以我在64位Windows 7上运行,并使用Pip和PyWin32设置Pyinstaller.我有python 2.7.
我用这段代码制作了一个简单的hello world程序
print "hello world!"
Run Code Online (Sandbox Code Playgroud)
我将该文件放在与PyInstaller相同的目录中,并在命令提示符下运行此代码
pyinstaller.py helloWorld.py
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试时,我收到此错误消息:
Error loading Python DLL: C:\PROGRA~1\PYINST~1.1\build\HELLOW~1\python27.dll (error code 126)
Run Code Online (Sandbox Code Playgroud)
我做错了什么,如何解决这个问题?
我使用PyQt4在Python 3.1中构建了一个相当简单的应用程序.完成后,我希望将应用程序分发到计算机而不安装任何一个.
我几乎完全关心Windows平台,所以我的目标是拥有一个可执行文件,最后可能还有一些资源文件和.dll.
经过四处搜寻,我得出结论
Y:\Users\lulz\build\exe.win32-3.1>system_shutdown.exe
Traceback (most recent call last):
File "Y:\Program Files (x86)\Python\lib\site-packages\cx_Freeze\initscripts\Console3.py", line 27, in exec(code, m.__dict__)
File "Y:/Users/lulz/Documents/Coding/Python3/projects/System Shutdown/system_shutdown.pyw", line 5, in from PyQt4 import QtCore
File "ExtensionLoader_PyQt4_QtCore.py", line 16, in AttributeError: 'NoneType' object has no attribute 'modules'
Run Code Online (Sandbox Code Playgroud)
所以我的问题基本上是两个问题:
如有必要,我可以提供有关第二个问题的更多信息,例如我调用cx_Freeze,我的distutils安装脚本等.
谢谢你的帮助和评论.
我有一个python GUI应用程序.现在我需要知道应用程序链接到的所有库.这样我就可以检查所有库的许可证兼容性.
我已经尝试过使用strace,但是strace似乎报告了所有的包,即使它们没有被应用程序使用.
而且,我尝试了python ModuleFinder,但它只返回python2.7中的模块而不是链接的系统级包.
那么有什么方法可以获得从我的应用程序链接的所有库?
我一直在尝试一个开源的个人人工智能助理脚本。该脚本工作正常,但我想创建一个可执行文件,以便我可以将该可执行文件赠送给我的一位朋友。但是,当我尝试使用 auto-py-to-exe 创建可执行文件时,出现以下错误:
Running auto-py-to-exe v2.10.1
Building directory: C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x
Provided command: pyinstaller --noconfirm --onedir --console --no-embed-manifest "C:/Users/Tarun/AppData/Local/Programs/Python/Python310/AI_Ass.py"
Recursion Limit is set to 5000
Executing: pyinstaller --noconfirm --onedir --console --no-embed-manifest C:/Users/Tarun/AppData/Local/Programs/Python/Python310/AI_Ass.py --distpath C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x\application --workpath C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x\build --specpath C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x
42681 INFO: PyInstaller: 4.6
42690 INFO: Python: 3.10.0
42732 INFO: Platform: Windows-10-10.0.19042-SP0
42744 INFO: wrote C:\Users\Tarun\AppData\Local\Temp\tmpjaw1ky1x\AI_Ass.spec
42764 INFO: UPX is not available.
42772 INFO: Extending PYTHONPATH with paths
['C:\\Users\\Tarun\\AppData\\Local\\Programs\\Python\\Python310']
43887 INFO: checking Analysis
43891 INFO: Building Analysis because Analysis-00.toc is non existent
43895 INFO: …Run Code Online (Sandbox Code Playgroud) (我在Windows上.)
我想使用PyInstaller.我总是可以创建bin文件pyinstaller.py [args].
__init__.py文件的包,setup.pypyinstaller\[files]该文件夹然后拨打电话python pyinstaller\pyinstaller.py.pyinstaller.org只告诉我一些事情Configure.py.
所以现在我没有想法如何安装PyInstaller,这样我就不必使用绝对路径了.你有什么想法?
Pyinstaller的所有文档都讨论了包含单个文件.是否可以包含目录,还是应该编写一个函数来遍历我的include目录来创建include数组?
我正在尝试使用PyInstaller 2.0将我的py脚本捆绑为.exe.我能够捆绑脚本,但在我的脚本中,我需要打开一个应该捆绑在exe中的文件(所以它是可移植的).我做这个很麻烦..
在我的.py中,我有
filename = 'C:\path\to\my\file\doc.docx'
data = open(filename,'rb')
Run Code Online (Sandbox Code Playgroud)
我使用PyInstaller 2.0,这在我的计算机上工作正常,但是如果我将exe转移到另一台计算机上它就不会工作了...... PyInstaller 2.0很新,所以文件很少,而且出版商的文档是相当"缺乏".
以下是发布商关于此事的信息:(我不认为他们的文档是最新的,因为在开始时它说使用Configure.py,然后在其他文档中它说2.0中不再需要Configure.py)
在--onefile分发中,数据文件捆绑在可执行文件中,然后在运行时通过C代码(也可以重建目录树)提取到工作目录中.工作目录最好由os.environ ['_ MEIPASS2']找到.因此,您可以通过以下方式访问这些文件
os.path.join(os.environ["_MEIPASS2"], relativename))
Run Code Online (Sandbox Code Playgroud)
这对我来说真的没有意义,一个初学的程序员......
与出版商不同的文件说..
在--onefile分发中,数据文件捆绑在可执行文件中,然后在运行时通过C代码(也可以重建目录树)提取到工作目录中.工作目录最好由sys._MEIPASS找到.因此,您可以通过以下方式访问这些文件
os.path.join(sys._MEIPASS, relativename))
Run Code Online (Sandbox Code Playgroud)
我用os.environ ["_ MEIPASS2"]进行了很多实验,而python似乎并不了解os.environment ["_ MEIPASS2"].我得到了回报:
>>> print os.environ["_MEIPASS2"]
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
print os.environ["_MEIPASS2"]
File "C:\Python27\lib\os.py", line 423, in __getitem__
return self.data[key.upper()]
KeyError: '_MEIPASS2'
Run Code Online (Sandbox Code Playgroud)
我还尝试了sys._MEIPASS ..是的,python响应'模块'没有属性'_MEIPASS'.
在这一点上,我觉得我的头脑即将爆炸..我感谢PyInstaller的作者的工作,但他们的文件是我见过的最糟糕的!我只需要有人帮助我将文件捆绑到exe中.我真的很想使用PyInstaller 2.0+,因为所有的.spec东西都让我对以前版本的PyInstaller感到困惑.
顺便说一句,我使用Win8 64bit和python 2.7.3
请帮忙!
我试图弄清楚如何使用PyInstaller加载动态/隐藏导入,到目前为止我得到了这个简单的结构:
首先,我在我的PYTHONPATH中添加了一个框架包 d:\Sources\personal\python\framework
我的许多python项目都使用了这个包,特别是它与我想要打包的下面简单项目一起使用
Main project
????data <- Pure static data
????plugins <- Dynamic modules which uses framework's modules
????resources <- Static data+embedded (generated by pyqt), used by plugins
? ????css
? ????images
| resources.py
| resources.qrc
main.py <- Uses framework's modules to load plugins dynamically
Run Code Online (Sandbox Code Playgroud)
我的spec文件看起来像这样:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['d:\\sources\\personal\\python\\pyqt\\pyshaders'],
binaries=None,
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
##### include mydir in distribution #######
def extra_datas(mydir):
def rec_glob(p, files):
import …Run Code Online (Sandbox Code Playgroud) pyinstaller ×10
python ×8
python-3.x ×3
executable ×1
include ×1
index-error ×1
install ×1
installation ×1
linux ×1
packaging ×1
pandas ×1
py2exe ×1
pyqt4 ×1
pyqt5 ×1
python-2.7 ×1
strace ×1
tuples ×1
windows ×1