2014-09-26 115 views
2

我想從我的(2)py文件中製作一個exe文件。在一個文件BS4進口 - import bs4 當我嘗試執行這個腳本:Py2exe - 模塊沒有找到

setup(
    console = ['gui.py'], 
    options = { 
     'py2exe': { 
      'packages': ["bs4"] 
     } 
    } 
) 

控制檯將返回:

C:\Users\uživatel\PycharmProjects\mail_checker>setup.py py2exe 
running py2exe 
*** searching for required modules *** 
Traceback (most recent call last): 
    File "C:\Users\u×ivatel\PycharmProjects\mail_checker\setup.py", line 12, in <m 
odule> 
    'packages': ["bs4"] 
    File "C:\Python27\lib\distutils\core.py", line 151, in setup 
    dist.run_commands() 
    File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "C:\Python27\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 243, in run 
    self._run() 
    File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 296, in _run 
    self.find_needed_modules(mf, required_files, required_modules) 
    File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 1306, in find_n 
eeded_modules 
    mf.import_hook(f) 
    File "C:\Python27\lib\site-packages\py2exe\mf.py", line 719, in import_hook 
    return Base.import_hook(self,name,caller,fromlist,level) 
    File "C:\Python27\lib\site-packages\py2exe\mf.py", line 136, in import_hook 
    q, tail = self.find_head_package(parent, name) 
    File "C:\Python27\lib\site-packages\py2exe\mf.py", line 204, in find_head_pack 
age 
    raise ImportError, "No module named " + qname 
ImportError: No module named bs4 

所以我想我還沒有寫setup.py的正確。你能給我一個建議嗎?由於

+1

任何區別,如果你明確你正在使用哪個python,如'python setup.py py2exe'? 'setup'可能使用的是沒有'bs4'的版本。 – 2014-09-26 17:44:16

+0

試試''includes':[「bs4」]'而不是'packages':[「bs4」]' – joaquin 2014-09-26 17:45:56

+0

@joaquin我試過但沒有效果。 – 2014-09-26 17:52:20

回答

1

SOLUTION:

的問題可能是,我已經通過的easy_install它創建於site-packages文件夾* .egg文件安裝BS4(和xlsxwriter)。出於某種原因,Py2exe在site-packages中找不到bs4。所以我試圖打開BeautifulSoup egg文件並將bs4文件夾複製到site-packages文件夾中,我用xlsxwriter做了同樣的處理。

它有幫助。程序正常工作。