我正在开发一个包含一些可选依赖项和'额外内容的包。
目标: 我希望以下两件事能够发挥作用:
状态:目前我已经能够:
使用python setup.py install
或python setup.py develop
执行安装后代码;使用此处的方法https://stackoverflow.com/a/36902139/8473819
使用pip install PACKAGE[extra]
正确安装/管理其他内容或不同的配置包。
在我的研究中,我没有找到python setup.py
允许'额外内容的功能。也没有pip install
功能允许我的安装后代码执行。 *已更改,请参阅更新
备注:
使用pip 9.0.1,python 3.6
我的安装后很简单,它只是获取有关可用资源的一些信息,创建文件,并使用print()
打印一些反馈。
问题:我是否错过了某些功能,或者只是通过其中一种安装方法无法干净地完成这两项操作?
更新
pip install
方法实际上确实执行了我的安装后代码(打印在某处管道传输,只能使用-vvv
arg显示)。另一个问题是(除非安装了-e
)它使用临时构建目录,如C:\Users\USER\AppData\Local\Temp\pip-ix4d6hv3-build
,然后清理它,而不是在本地目录中构建。在这种情况下,我的文件创建不起作用,我无法找到文件的创建位置,或者它被pip清理(我尝试--no-clean
得到相同的结果)。
参考其他人:
如果从本地目录(不是tar / whl / etc。文件)安装,则将包复制到临时目录,请参阅^ update ^。然后setuptools.command.egg_info
中的setup.py
子类将在setuptools.command.install
或setuptools.command.develop
(传递到cmdclass
arg)之前执行。