5

我正在开发一个包含一些可选依赖项和“附加”的包。

目标: 我希望以下两件事起作用:

  1. 执行我的安装后代码
  2. 允许“额外”安装

状态:目前我已经能够:

  1. 使用python setup.py installpython setup.py develop执行安装后代码;使用这里的方法https://stackoverflow.com/a/36902139/8473819

  2. 用于pip install PACKAGE[extra]正确安装/管理额外的或不同的包配置。

在我的研究中,我没有发现python setup.py允许“附加”的功能,也没有发现pip install允许我的安装后代码执行的功能。*已更改,请参阅更新

笔记:

使用 pip 9.0.1、python 3.6

我的后期安装很简单,它只是获取一些关于可用资源的信息,创建一个文件,并使用print().

问题:我是否错过了一些功能,或者没有一种方法可以仅使用一种安装方法干净地完成这两个操作?

更新:

pip install方法实际上执行了我的安装后代码(打印在某处通过管道传输,仅使用-vvvarg 可见)。另一个问题是(除非与 一起安装-e)它使用临时构建目录,C:\Users\USER\AppData\Local\Temp\pip-ix4d6hv3-build然后清理它,而不是在本地目录中构建。在这种情况下,我的文件创建要么不起作用,要么我无法找到文件的创建位置,要么被 pip 清理(我尝试--no-clean了相同的结果)。

供他人参考:

如果从本地目录(不是 tar/whl/etc. 文件)安装,软件包将被复制到临时目录,请参阅 ^update^。然后一个setuptools.command.egg_info子类 insetup.py将在setuptools.command.installor setuptools.command.develop (passed in cmdclassarg)之前执行。

4

0 回答 0