Pyinstaller - ImportError:没有系统模块'pywintypes'(pywintypes27.dll)

时间:2014-08-12 00:03:44

标签: python exe pyinstaller

我正在尝试将我的python脚本打包成可执行文件。我以为我会非常直接,因为我没有很多进口。首先是我的进口:

from __future__ import print_function 
from netCDF4 import Dataset
import numpy as np
import os
from progressbar import Percentage,Bar,ETA,ProgressBar,RotatingMarker  

我知道支持numpy的事实我对__future__os不确定,我确信netCDF4和{{1}不支持。我在Python 2.7.7 for Windows 7上使用pyinstaller 2.1版,这是我用来开始创建.exe的命令:

progressbar

以下是错误列表。似乎有一个主要问题是无法找到模块C:\Users\Patrick\Desktop\netcdf_grid_extraction>pyinstaller --onefile --hidden-i mport=netCDF4 --hidden-import=progressbar netcdf_grid_extraction.py ,以及与pywintypes.dll相关的两个程序集。这是我得到的4个错误的列表。我怎样才能解决这些问题呢?

1

amd64_Microsoft

2

1130 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.
21022.8_none ...
1134 WARNING: Assembly not found
1134 ERROR: Assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none
not found
1210 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.
21022.8_none ...
1210 WARNING: Assembly not found
1210 ERROR: Assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none
not found

3

Traceback (most recent call last):
  File "<string>", line 11, in <module>
  File "C:\Users\Patrick\Anaconda\lib\site-packages\pythoncom.py", line 2, in <m
odule>
    import pywintypes
  File "C:\Users\Patrick\Anaconda\lib\site-packages\win32\lib\pywintypes.py", li
ne 124, in <module>
    __import_pywin32_system_module__("pywintypes", globals())
  File "C:\Users\Patrick\Anaconda\lib\site-packages\win32\lib\pywintypes.py", li
ne 98, in __import_pywin32_system_module__
    raise ImportError("No system module '%s' (%s)" % (modname, filename))
ImportError: No system module 'pywintypes' (pywintypes27.dll)
4155 INFO: Processing hook hook-pywintypes
Traceback (most recent call last):
  File "<string>", line 11, in <module>
  File "C:\Users\Patrick\Anaconda\lib\site-packages\pythoncom.py", line 2, in <m
odule>
    import pywintypes
  File "C:\Users\Patrick\Anaconda\lib\site-packages\win32\lib\pywintypes.py", li
ne 124, in <module>
    __import_pywin32_system_module__("pywintypes", globals())
  File "C:\Users\Patrick\Anaconda\lib\site-packages\win32\lib\pywintypes.py", li
ne 98, in __import_pywin32_system_module__
    raise ImportError("No system module '%s' (%s)" % (modname, filename))
ImportError: No system module 'pywintypes' (pywintypes27.dll)

4

5840 INFO: Searching for assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.
21022.8_none ...
5840 WARNING: Assembly not found
5840 ERROR: Assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none
not found

以下是我得到的警告,可能会或可能不会相关,并且都与无法找到Traceback (most recent call last): File "C:\Users\Patrick\Anaconda\Scripts\pyinstaller-script.py", line 9, in <mo dule> load_entry_point('PyInstaller==2.1', 'console_scripts', 'pyinstaller')() File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\main.py", line 88, in run run_build(opts, spec_file, pyi_config) File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\main.py", line 46, in run_build PyInstaller.build.main(pyi_config, spec_file, **opts.__dict__) File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 1924, in main build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build' )) File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 1873, in build execfile(spec) File "C:\Users\Patrick\Desktop\netcdf_grid_extraction\netcdf_grid_extraction.s pec", line 17, in <module> console=True ) File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 1170, in __init__ strip_binaries=self.strip, upx_binaries=self.upx, File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 1008, in __init__ self.__postinit__() File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 309, in __postinit__ self.assemble() File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 1050, in assemble dist_nm=inm) File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 842, in checkCache digest = cacheDigest(fnm) File "C:\Users\Patrick\Anaconda\lib\site-packages\pyinstaller-2.1-py2.7.egg\Py Installer\build.py", line 796, in cacheDigest data = open(fnm, "rb").read() IOError: [Errno 22] invalid mode ('rb') or filename: ''

相关
ctypes

好消息是,似乎第三方模块正在考虑中,但我不确定它们是否与我所得到的错误有关:

890 WARNING: library python%s%s required via ctypes not found
2175 WARNING: library python%s%s required via ctypes not found

10 个答案:

答案 0 :(得分:9)

我刚刚在pywintypes27.dll中复制了DLL C:\Python27\Lib\site-packages\pywin32_system32 我在win32/lib中添加了它。

没关系!

答案 1 :(得分:7)

我遇到了同样的问题。 dll,pywintypes27.dll位于C:\ Python27 \ Lib \ site-packages \ pywin32_system32中。我将此目录添加到我的PATH环境变量中,py2exe能够找到DLL。显然,设置路径不是正确的解决方案(你可以通过os.environ以编程方式进行),但对我有用。

答案 2 :(得分:4)

问题解决方案2.以下链接中的解决方案为我解决了问题:)

在python 2.7上通过conda安装了pywin32 build 219,导入pythoncom失败并带有

ImportError: No system module 'pywintypes' (pywintypes27.dll)

问题是库pywintypes27.dll不存储在

pathtovenv \ lib \ site-packages \ win32 \ lib \ pywintypes27.dll

但在

pathtovenv \ lib中\站点包\ WIN32 \ pywintypes27.dll

在文件win32 \ lib \ pywintypes.py中添加以下elif部分解决问题

:::蟒

if found is None:
    # Not in the Python directory?  Maybe we were installed via
    # easy_install...
    if os.path.isfile(os.path.join(os.path.dirname(__file__), filename)):
        found = os.path.join(os.path.dirname(__file__), filename)
    elif os.path.isfile(os.path.join(os.path.dirname(__file__), "..", filename)):
        found = os.path.join(os.path.dirname(__file__), "..", filename)

简而言之,看起来pywintypes27.dll位于错误的文件夹

http://sourceforge.net/p/pywin32/bugs/685/

答案 3 :(得分:4)

我使用虚拟环境并遇到了同样的问题。 pywintypes35.dll丢失了。这是我的解决方案:

pip install pypiwin32

答案 4 :(得分:1)

import win32api

当我最近知道应该调用 win32api 以摆脱此问题时,我也多次遇到此模块未找到错误。请判断此解决方案是否适合您

答案 5 :(得分:0)

不确定你是否还在寻找帮助。

错误 1 3 看起来像是一样的错误。 This SO question指出了我正确的方向。基本上,安装MS VC++ 9.0 x64 redistribution package,这应该处理这些错误。

错误 2 似乎是按照Lee的建议处理的。

错误 4 是因为,由于某种原因,PyInstaller在您的二进制列表中粘贴了一些空文件名。我不确定是否有一种不太常见的修复错误的方法,但我能够通过放置

来解决它
for b in a.binaries:
    if b[0] == '':
        a.binaries.remove(b)

在我的spec文件中的Analysis( ... )块之后。

我不确定library python%s%s required via ctypes not found警告是否相关。他们非常怀疑,但我走下了一个兔子洞,试图弄清楚这些警告产生的地方,并且只在我晚上浪费了大约两个小时才成功。

答案 6 :(得分:0)

您应该使用'-install'参数运行pywin32扩展的安装后脚本,以确保正确设置环境。

pywin32_postinstall.py -install

答案 7 :(得分:0)

我有一个类似的问题:

Traceback (most recent call last):
  File ".\install\pywin32_postinstall.py", line 605, in <module>
    install()
  File ".\install\pywin32_postinstall.py", line 328, in install
    LoadSystemModule(lib_dir, "pywintypes")
  File ".\install\pywin32_postinstall.py", line 166, in LoadSystemModule
    mod = imp.load_dynamic(modname, filename)
ImportError: DLL load failed: The specified module could not be found.

我的错误是我通过pip 为用户

安装了pywin32
pip install pywin32 --user

因此所需的DLL位于用户的AppData中:%appdata%\ Python \ Python27 \ site-packages 这就是为什么pywin32_postinstall.py找不到它们的原因。

在没有--user选项的情况下重新安装。

答案 8 :(得分:0)

修复:没有系统模块pywintypes(pywintypes39.dll)。

第一步是打开Python安装目录并找到“ pywin32_system32”文件夹

images: https://i.stack.imgur.com/ERVu5.png

第二步是将整个文件夹复制到“项目名称\ venv \ Lib \ site-packages”

images: https://i.stack.imgur.com/P8JY0.png

来源:https://programmersought.com/article/92924476575/

祝你好运!

答案 9 :(得分:0)

我使用的是 python 3.8 版,所以我正在复制以 38 结尾的文件(例如 xyz38.dll

  1. 从互联网下载并复制位置中的 pythoncom38.dllpywintype38.dll

    C:\Users\hp\AppData\Local\Programs\Python\Python38-32\Lib\site-packages\win32

<块引用>

注意:此位置可能因电脑而异,因此请转到那个位置 在 module pywintypespy_xyz not found 错误中显示的错误。

(同时将 .dll 文件粘贴到 libs 或 Lib 或 lib 文件夹中的所有 win32 文件夹中)

  1. 关闭python应用程序并重新启动并再次运行您的程序[100%有效]

  2. 如果上述方法不起作用,请在命令提示符下卸载 pypiwin32 pip uninstall pypiwin32 然后 pip install pipiwin32 并重复第一步和第二步并重启您的电脑