2015-03-30 36 views
0

我不得不再次問這個問題,因爲a related question解決了沒有涉及到virtualenv時的問題。如何在virtualenv中使用cx_Freeze包含pytz?

現在我有多個virtualenv,我想要使用cx_Freeze在可執行文件中打包。我通常使用virtualenv python解釋器運行我的cx_Freeze安裝文件,但是當我嘗試執行我的程序時,pytz沒有找到這些文件,可能是因爲如果你看到下面的錯誤,它會在virtualenv的原始目錄中搜索它們他們被找到了。我檢查了時區文件是否正確放入zip文件中。

這是錯誤消息,嘗試運行我的程序捆綁在一起時,我得到:

[email protected]:~/src/build/exe.linux-x86_64-2.7$ ./validate 
/home/cserpell/src/build/exe.linux-x86_64-2.7/library.zip/distutils/__init__.py:14: UserWarning: The virtualenv distutils package at %s appears to be in the same location as the system distutils? 
Traceback (most recent call last): 
    File "/home/cserpell/src/virtualenvtest/local/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module> 
    exec(code, m.__dict__) 
    File "scripts/validate.py", line 9, in <module> 
    File "/home/cserpell/src/scripts/script.py", line 15, in <module> 
    from common import time_util 
    File "/home/cserpell/src/common/time_util.py", line 31, in <module> 
    SCL_TZ = pytz.timezone('America/Santiago') 
    File "/home/cserpell/src/virtualenvtest/local/lib/python2.7/site-packages/pytz/__init__.py", line 180, in timezone 
    raise UnknownTimeZoneError(zone) 
pytz.exceptions.UnknownTimeZoneError: 'America/Santiago' 

回答

0

,我發現自己的答案。唯一需要的是在我的virtualenv中安裝setuptools。爲了記錄,很奇怪的是,我在virtualenv中使用pip安裝它,但是當我運行pip list或pip freeze時,它不會將setuptools作爲要求顯示,儘管它用於cx凍結腳本。

+2

我有同樣的問題,但setuptools沒有幫助:/ – Tumetsu 2016-06-26 19:33:18