标签: pyinstaller

PyInstaller中没有名为'pandas._libs.tslibs.timedeltas'的模块

我正在尝试使用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)

python windows pyinstaller python-3.x pandas

23
推荐指数
3
解决办法
2万
查看次数

如何使用 pyinstaller 将多个 .py 文件构建为单个可执行文件?

我制作了一个包含 5-6 个 .py 文件的小型 PyQt 应用程序。现在我想将它们构建并编译成一个主文件,这意味着它必须从一个主窗口 exe 中运行。

我的 .py 文件已成功相互连接。我已经使用 pyinstaller 来制作可执行文件,但问题是我将每个 .py 文件构建到了自己的 .exe 文件中。但我想制作一个 .exe 文件,通过它可以使用所有 .py 文件。

如何将所有 .py 文件构建为单个 .exe 文件?

python pyinstaller pyqt5

23
推荐指数
2
解决办法
4万
查看次数

PyInstaller没有处理简单的HelloWorld程序

所以我在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)

我做错了什么,如何解决这个问题?

pyinstaller python-2.7

22
推荐指数
1
解决办法
2万
查看次数

构建Python 3和PyQt的可执行文件

我使用PyQt4在Python 3.1中构建了一个相当简单的应用程序.完成后,我希望将应用程序分发到计算机而不安装任何一个.

我几乎完全关心Windows平台,所以我的目标是拥有一个可执行文件,最后可能还有一些资源文件和.dll.

经过四处搜寻,我得出结论

  • py2exe仅支持最高版本2.7的Python
  • pyinstaller仅支持2.6版本的Python
  • cx_Freeze对我不起作用,因为我在尝试执行成功构建二进制文件时不断收到以下错误:

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)

所以我的问题基本上是两个问题:

  1. 有没有其他方法,但cx_Freeze用我的配置构建二进制文件?
  2. 如果没有,cx_Freeze问题可能是什么?

如有必要,我可以提供有关第二个问题的更多信息,例如我调用cx_Freeze,我的distutils安装脚本等.

谢谢你的帮助和评论.

py2exe pyinstaller pyqt4 python-3.x

21
推荐指数
1
解决办法
6918
查看次数

获取python项目使用的所有模块/包

我有一个python GUI应用程序.现在我需要知道应用程序链接到的所有库.这样我就可以检查所有库的许可证兼容性.

我已经尝试过使用strace,但是strace似乎报告了所有的包,即使它们没有被应用程序使用.

而且,我尝试了python ModuleFinder,但它只返回python2.7中的模块而不是链接的系统级包.

那么有什么方法可以获得从我的应用程序链接的所有库?

python linux pyinstaller strace

21
推荐指数
2
解决办法
1万
查看次数

IndexError:当我尝试使用 auto-py-to-exe 从 python 脚本创建可执行文件时,元组索引超出范围

我一直在尝试一个开源的个人人工智能助理脚本。该脚本工作正常,但我想创建一个可执行文件,以便我可以将该可执行文件赠送给我的一位朋友。但是,当我尝试使用 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)

python executable tuples pyinstaller index-error

21
推荐指数
2
解决办法
1万
查看次数

如何安装PyInstaller?

(我在Windows上.)

我想使用PyInstaller.我总是可以创建bin文件pyinstaller.py [args].

  • 它不是带__init__.py文件的包,
  • 它没有 setup.py
  • 并且它无法创建文件夹,将其放入我的PYTHONPATH,放入pyinstaller\[files]该文件夹然后拨打电话python pyinstaller\pyinstaller.py.

pyinstaller.org告诉我一些事情Configure.py.

所以现在我没有想法如何安装PyInstaller,这样我就不必使用绝对路径了.你有什么想法?

python install pyinstaller

19
推荐指数
3
解决办法
6万
查看次数

包含使用Pyinstaller的目录

Pyinstaller的所有文档都讨论了包含单个文件.是否可以包含目录,还是应该编写一个函数来遍历我的include目录来创建include数组?

python installation packaging include pyinstaller

19
推荐指数
5
解决办法
2万
查看次数

PyInstaller 2.0捆绑文件为--onefile

我正在尝试使用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

请帮忙!

python pyinstaller

19
推荐指数
1
解决办法
3万
查看次数

如何将动态python模块添加到PyInstaller的规范?

我试图弄清楚如何使用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)

python pyinstaller python-3.x

19
推荐指数
1
解决办法
1792
查看次数