PyInstaller을 통해 python 스크립트를 작성하려고합니다. 나는, 구성 스펙 파일을 생성하고, 구축하려면 다음 명령을 사용하고 있습니다 :PyInstaller, spec 파일, ImportError : 'blah'라는 모듈이 없습니다
# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), 'icinga.py'],
pathex=['/home/user/projects/icinga_python/releases/v2.1'])
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'myscript'),
debug=False,
strip=False,
upx=True,
console=1)
이것은 dist/
디렉토리에 실행 파일을 내장 :
wget pyinstaller.zip, extracted it, python Configure.py, etc, then:
python pyinstaller/Makespec.py --onefile myscript.py
python pyinstaller/Build.py myscript.spec
는 생성 된 사양 파일입니다. 이 파일을 실행하려고 할 때, 나는 다음을 얻을 : 나는 실제 파이썬 코드의 디렉토리에이 실행 파일을 이동 한 경우
Traceback (most recent call last):
File "<string>", line 12, in <module>
File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 455, in importHook
raise ImportError, "No module named %s" % fqname
ImportError: No module named mysql
, 그것은 다른 결과 준 다음에
Traceback (most recent call last):
File "<string>", line 12, in <module>
File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 436, in importHook
mod = _self_doimport(nm, ctx, fqname)
File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 521, in doimport
exec co in mod.__dict__
File "CLUSTER/mysql/icingasql.py", line 13, in <module>
import urllib2
File "/home/user/projects/myscript/releases/v2.1/pyinstaller/iu.py", line 455, in importHook
raise ImportError, "No module named %s" % fqname
ImportError: No module named urllib2
을 ... pyinstaller docs 나는 --onefile
이 내가 필요로하는 옵션이지만, 어떤 이유로 모든 것이 컴파일되지는 않는다.
이 스크립트는 실제로 SQL 문에 대해 작성한 간단한 모듈을 포함하고 있지 않으며 특정 구문 분석 웹 사이트 에스.
모든 라이브러리를 경로에 배치하거나 결국 PYTHONPATH에 배치하고 라이브러리 이동을 중지해야합니다. – Louis
죄송합니다. 무엇을 하시겠습니까? spec 파일에 있습니까? – Cmag
http://docs.python.org/tutorial/modules.html – Louis