覆盖Python bdist Windows安装程序的默认安装目录

时间:2011-09-08 20:30:09

标签: python distutils

是否可以在安装程序生成期间(或在实际安装期间)指定Python模块的自定义路径?举个例子,假设我有5个模块,我使用它生成安装程序:

c:\>python setup.py bdist

所有内容都打包正确,但是当我安装时,我被迫安装到site-packages中。我需要能够指定我的自定义目录(或安装程序的选择)。至少,我需要能够覆盖默认值,以便我的自定义路径显示为默认路径。

这是否可以使用内置发行版?

3 个答案:

答案 0 :(得分:11)

您应该编写setup.cfg,您可以在其中指定安装选项(请参阅python setup.py install --help output),然后运行python setup.py bdist。创建二进制发行版时,python将使用此选项在“build”子目录下执行dumb安装,并从此哑安装中创建安装程序。例如,如果要创建将库安装到/ some / lib / path并将脚本安装到/ some / bin / path的bdist,请创建以下setup.cfg:

[install] 
prefix=/
install_lib=/some/lib/path
install_scripts=/some/bin/path

然后运行python setup.py bdist

答案 1 :(得分: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

答案 2 :(得分:1)

我相信MaxSin的答案有点正确。但是要使用他的命令答案:“python setup.py bdist_wininst”你必须这样做:

[bdist_wininst] 
prefix=/
install_lib=/some/lib/path
install_scripts=/some/bin/path

看作语法here是:

[command]
option=value
...

编辑:

看起来这不起作用:(不确定可能的其他解决方案。