覆盖Python bdist Windows安装程序的默认安装目录
在生成安装程序的时候(或者在实际安装时),有没有办法指定一个自定义的路径来放置Python模块?举个例子,我有5个模块,我用以下命令生成了一个安装程序:
c:\>python setup.py bdist
一切打包都没问题,但在安装时,我只能安装到site-packages这个默认位置。我需要能够指定一个我自己选择的目录,或者安装程序选择的目录。至少,我希望能够覆盖默认设置,让我的自定义路径成为默认路径。
使用已经构建好的分发包,这样做有可能吗?
3 个回答
1
我认为MaxSin的回答有点道理。不过,如果你想用他的回答来执行这个命令:“python setup.py bdist_wininst”,你需要这样做:
[bdist_wininst]
prefix=/
install_lib=/some/lib/path
install_scripts=/some/bin/path
根据这个链接中的语法这里:
[command]
option=value
...
补充:
看起来这个方法不太管用 :( 不太确定还有其他解决办法。
1
从运行 python setup.py --help install
这条命令来看:
Options for 'install' command:
--prefix installation prefix
--exec-prefix (Unix only) prefix for platform-
specific files
--home (Unix only) home directory to install
under
--user install in user site-package
'/home/jterrace/.local/lib/python2.7/si
te-packages'
--install-base base installation directory (instead of
--prefix or --home)
--install-platbase base installation directory for
platform-specific files (instead of --
exec-prefix or --home)
--root install everything relative to this
alternate root directory
12
你需要写一个叫做setup.cfg的文件,在里面可以指定安装选项(你可以查看python setup.py install --help的输出内容)。然后运行python setup.py bdist。当你创建二进制发行版时,Python会在“build”这个子目录下进行简单的安装,并根据这个简单的安装来创建安装程序。例如,如果你想创建一个bdist,它会把库安装到/some/lib/path,把脚本放到/some/bin/path,你可以创建如下的setup.cfg:
[install]
prefix=/
install_lib=/some/lib/path
install_scripts=/some/bin/path
然后运行python setup.py bdist