有没有办法使用Python setup.py和bdist_wininst或bdist_msi组合多个包?
我需要开发的软件包(包 foo ,需要软件包 bar )。大多数用户只是将其视为 foo ,因此我想创建一个包含" foo"的单个Windows MSI或可执行文件。 &" bar"。
我可以办理结帐,以便我在foo的setup.py中为foo和bar复制必要的安装要求,如果 bar 添加,这很容易出错任何新文件或目录。
建议?
答案 0 :(得分:1)
如果您在setuptools的setup()
函数中指定多个包,则安装多个包很简单:
from setuptools import setup
setup(
...
packages = ['package1', 'package2'],
package_dir = {'':'src'}, # tell distutils packages are under src
...
)
答案 1 :(得分:0)
我假设你已经安装了cx_Freeze;
from cx_Freeze import setup,Executable
setup(name="Game",
version="1.0",
options={"build_exe":{"packages":["pygame"],"include_files":["apple.png","snakehead.png","intro.wav","dead.wav"]}},
description="the game",
executables=[Executable("mygame.py")])
将此setup.py
与所有软件包和main.py放在一个文件夹中,打开控制台 该文件夹并写入;
python setup.py bdist_msi
编辑:这是我制作的游戏的示例,因此除非您不使用Pygame,否则不要使用pygame
。如你所见,我必须输入2个png和2个wav文件,include_files
用于包。
它们必须在同一个文件夹中看起来像这样,打开 此文件夹并运行bdist_msi
后,msi
将在{{{} 1}}。这个截图来自我的文件夹,我将msi移动到这个文件,它不是在那里创建的。除msi和zip文件之外的所有其他内容必须位于同一文件夹中。
对于exe ,setup.py必须是这样的;
C/program files
在同一文件夹中打开cmd;
from cx_Freeze import setup,Executable
setup(name="Chuck Norris",
version="1.0",
description="as above",
executables=[Executable("myfile.py")])
但是,将它转换为exe后,它将生成另一个文件夹,您必须将所有包放入该文件夹。包括您的程序在内的字体,图片,声音等。使用python setup.py build
时,不必须在setup.py运行后将它们存储在同一文件夹中。