2016-01-24 57 views
0

我使用pyinstaller -F ./parser.spec進行編譯。
然後我運行./dist/parser程序,出現此錯誤:PyInstaller - ImportError:沒有名爲'rethinkdb'的模塊

Traceback (most recent call last): 
    File "<string>", line 21, in <module> 
ImportError: No module named 'rethinkdb' 
parser returned -1 

我試圖創建一個鉤子文件,但說實話,我真的覺得我不知道我在做什麼。

rethinkdbhiddenimports但是pyparser不會向我發出任何錯誤,指出可能是錯誤的。

解析器
#!/usr/bin/env python 
... 
import rethinkdb 
... 
parser.spec
... 
a = Analysis(
    ['parser'], 
    pathex=[os.path.realpath('./env/lib/python3.3/site-packages/')], 
    binaries=None, 
    datas=added_files, 
    hiddenimports=['rethinkdb'], 
    hookspath=[os.path.realpath('./hooks')], 
    runtime_hooks=None, 
    excludes=None, 
    win_no_prefer_redirects=None, 
    win_private_assemblies=None, 
    cipher=block_cipher 
) 
... 
鉤/ hook-rethinkdb.py
hiddenimports = [ 
    'ssl', 
    'cPickle', 
    'pickle', 
    'itertools', 
    'multiprocessing', 
    'builtins', 
    'rethinkdb', 
    'rethinkdb.ast', 
    'rethinkdb.errors', 
    'rethinkdb.net', 
    'rethinkdb.ql2_pb2', 
    'rethinkdb.query', 
    'rethinkdb.version', 
] 
+0

使用'pyinstaller'有什麼好處? – dalanmiller

+0

我將應用程序作爲獨立的命令行程序進行捆綁,該程序可以放在'/ usr/local/bin'中而不需要依賴關係。有些人不能也不應該被期望知道git,python,virtualenvs等...... – demux

+0

@dalanmiller,在一個相關的問題上,爲什麼''rethinkdb'的python-driver'不在github上?我想我已經找到了這個問題。我想分叉驅動程序並解決問題,但由於驅動程序不在github上,我想我必須創建一個新的repo。 – demux

回答

0

我有同樣的麻煩與應用我做,但它有一個簡單的辦法。我不確定它是否適用於您,但我至少會嘗試它,因爲它非常簡單。不要編輯spec文件,請嘗試在命令行中運行此操作:

pyinstaller --paths=C:/Users/.../Python34/Lib/site-packages filename.py 

顯然將路徑更改爲計算機的正確路徑。希望這有助於如果不是,我希望你能找到答案。

+0

謝謝,但這不會。我的虛擬環境的Python路徑已經存在於'.spec'文件中,儘管它不需要在那裏。所有其他套件都包含在內。這只是rethinkdb缺失。 – demux

相關問題