web-dev-qa-db-ja.com

Pyinstaller-ImportError:システムモジュールがありません 'pywintypes'(pywintypes27.dll)

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についてはよくわかりません。また、netCDF4progressbarについては確かに知っています。サポートされていません。 Python 2.7.7 for Windows 7でpyinstallerバージョン2.1を使用しています。これは、.exeの作成を開始するために使用するコマンドです。

C:\Users\Patrick\Desktop\netcdf_grid_extraction>pyinstaller --onefile --hidden-i
mport=netCDF4 --hidden-import=progressbar netcdf_grid_extraction.py

これがエラーのリストです。モジュールpywintypes.dllを見つけることができないという大きな問題が1つあるようです。また、AMD64_Microsoftに関連する2つのアセンブリもあります。これが私が得る4つのエラーのリストです。どうすればこれらを解決できますか?

1

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

2

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)

3

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

4

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

幸いなことに、サードパーティのモジュールが考慮されているようですが、それらが私が取得しているエラーに関連付けられているかどうかはわかりません。

4540 INFO: Hidden import 'netCDF4' has been found otherwise
4540 INFO: Hidden import 'progressbar' has been found otherwise
4540 INFO: Hidden import 'codecs' has been found otherwise
4545 INFO: Hidden import 'encodings' has been found otherwise
9
pbreach

DLL pywintypes27.dllC:\Python27\Lib\site-packages\pywin32_system32にコピーしました。
win32/libに追加しました。

大丈夫です!

10
Lemayzeur

私も同じ問題を抱えていました。 dll、pywintypes27.dllはC:\ Python27\Lib\site-packages\pywin32_system32にありました。このディレクトリをPATH環境変数に追加すると、py2exeはDLLを見つけることができました。明らかに、パスの設定は正しい解決策ではありません(os.environを介してプログラムで行うこともできます)が、私にとってはうまくいきます。

7
Lee Kamentsky

問題2の解決策以下のリンクの解決策は私にとって問題を解決しました:)

Pywin32ビルド219がcondaを介してpython 2.7にインストールされている場合、pythoncomのインポートは次のように失敗します。

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

問題は、ライブラリpywintypes27.dllがに保存されていないことです

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

しかしで

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

ファイルwin32\lib\pywintypes.pyに追加すると、以下のElif部分で問題が解決します。

::: python

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/

4
Nautilius

私は仮想環境を使用していましたが、同じ問題がありました。 pywintypes35.dllがありませんでした。これが私の解決策でした:

pip install pypiwin32
4
karlJ

私は同様の問題を抱えていました:

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オプションなしで再インストールすると役に立ちました。

0
flam3

環境が正しくセットアップされていることを確認するために、「-install」パラメーターを指定してpywin32拡張機能のインストール後スクリプトを実行する必要があります。

pywin32_postinstall.py -install

0
Niyaz

あなたがまだこれについての助けを探しているかどうかわからない。

エラー13は同じエラーのように見えます。 これSO質問 私を正しい方向に向けました。基本的に、 MS VC++ 9.0 x64再配布パッケージ をインストールします。これで問題ありません。それらのエラー。

エラー2は、Leeの提案に従って処理されたようです。

エラー4は、何らかの理由で、PyInstallerがバイナリリストに空のファイル名をスタックしたためです。エラーを修正するためのよりハッキーな方法があるかどうかはわかりませんが、置くことでそれを回避することができました

_for b in a.binaries:
    if b[0] == '':
        a.binaries.remove(b)
_

スペックファイルのAnalysis( ... )ブロックの後。

_library python%s%s required via ctypes not found_警告が関連しているかどうかはわかりません。彼らはひどく疑わしいですが、私はそれらの警告がどこで生成されたかを見つけようとしてウサギの穴を下り、私の夜の約2時間を無駄にすることに成功しました。

0
Tim Supinie