我的應用程序的其中一個模塊使用.pyd文件中的函數。有一個選項可以排除dll(exclude_dlls),但是有一個選項可以包含它們嗎?儘管複製了其他文件(.py),但構建過程似乎並未複製模塊中的.pyd。我還需要包含一個.dll。如何讓py2exe包含.pyd和.dll文件?在py2exe版本中包含PYD/DLL
回答
如果沒有自動檢測到,請嘗試手動將它們複製到py2exe的臨時構建目錄中。它們將被包含在最終的可執行文件中。
您可以修改設置腳本文件明確複製:
script = "PyInvaders.py" #name of starting .PY
project_name = os.path.splitext(os.path.split(script)[1])[0]
setup(name=project_name, scripts=[script]) #this installs the program
#also need to hand copy the extra files here
def installfile(name):
dst = os.path.join('dist', project_name)
print 'copying', name, '->', dst
if os.path.isdir(name):
dst = os.path.join(dst, name)
if os.path.isdir(dst):
shutil.rmtree(dst)
shutil.copytree(name, dst)
elif os.path.isfile(name):
shutil.copy(name, dst)
else:
print 'Warning, %s not found' % name
pygamedir = os.path.split(pygame.base.__file__)[0]
installfile(os.path.join(pygamedir, pygame.font.get_default_font()))
installfile(os.path.join(pygamedir, 'pygame_icon.bmp'))
for data in extra_data:
installfile(data)
等...修改,以滿足您的需求,當然。
也許你可以使用data_files選項設置():
import glob
setup(name='MyApp',
# other options,
data_files=[('.', glob.glob('*.dll')),
('.', glob.glob('*.pyd'))],
)
data_files應該是元組,其中每個元組包含的列表:
- 的目標目錄。
- 要複製的文件列表。
這不會把文件放到library.zip中,這對dll應該不是問題,但我不知道pyd文件。
.pyd和.DLL在這裏是不同的,因爲一個.pyd應該被modulefinder自動發現幷包含在內(只要你有相應的「import」語句)而不需要做任何事情。如果有人錯過了,你會做同樣的事情,就好像一個.py文件錯過了(它們都只是模塊):使用py2exe選項的「include」選項。
Modulefinder不一定會找到.DLLs(py2exe可以檢測到一些)的依賴關係,因此您可能需要使用'data_files'選項明確包含這些。例如,包含兩個.DLL('foo.dll'和'bar.dll')以及三個.pyd('module1.pyd','module2.pyd'和'module3')的地方。 pyd')包括:
setup(name='App',
# other options,
data_files=[('.', 'foo.dll'), ('.', 'bar.dll')],
options = {"py2exe" : {"includes" : "module1,module2,module3"}}
)
在當前版本的py2exe中,data_files應該如下所示: data_files = [(DIR,[FILE,FILE,FILE]),...] – 2010-03-02 20:28:00
- 1. 在py2exe中包含圖像?
- 2. 如何在py2exe中包含Yapsy?
- 3. Py2exe不包含模塊
- 4. 包含py2exe的文件夾
- 5. 無法在py2exe安裝腳本中包含模塊(python3)
- 6. py2exe包含.exe中的MSVC DLL
- 7. 在NDK版本中包含libjpeg
- 8. 在Doxygen中包含POM版本?
- 9. 在requirements.txt中包含python版本?
- 10. 在調試版本中包含資源
- 11. 在jar版本中包含git commit hash
- 12. 如何在包含lib的文件名中包含版本號?
- 13. REST API版本控制。在新版本中包含什麼?
- 14. 作曲者:在版本URL中包含版本變量
- 15. 我的版本包含AppName.exe.config?
- 16. py2exe或pyinstaller未能包含jaraco.util
- 17. 如何在NuGet轉換文件中包含當前包版本?
- 18. Py2exe的版本號爲com dll
- 19. 如何在Sandcastle版本中包含構建日期和版本號
- 20. 是否有可能在py2exe版本中有一個python shell?
- 21. jQuery的更有效的版本包含
- 22. OS X包含哪些Ruby版本?
- 23. 什麼版本的.NET包含RuntimeMethodHandle.EmptyHandle?
- 24. 檢查行包含版本號
- 25. GitHub包含另一個版本庫
- 26. hdfs hadoop 1.0.3的哪個版本包含?
- 27. Statsmodels版本0.6.1不包含tsa?
- 28. 包含版本的文件格式
- 29. 包含兩個不同小數位的排序版本版本
- 30. 在發行版中包含Psyco文件
是的,但理想情況是應該是setup.py腳本的一部分,或放入我的批處理腳本以創建可執行文件。 – TheObserver 2008-10-21 05:13:08