【发布时间】:2018-03-16 17:13:01
【问题描述】:
我想为我的具有 setup.py 并使用 setuptools 的 python 包实现以下两个目标:
- 允许使用符号链接进行安装,而不是复制包 文件
- 允许自定义代码在使用“安装”时运行 setup.py
首先,我通常这样 pip:
pip install -e . --user
而且效果很好。
第二个,我在 setup.py 中做:
from __future__ import print_function
from setuptools import setup
from setuptools.command.install import install
import os
class CustomInstallCommand(install):
def run(self):
print ("Custom code here")
install.run(self)
setup(...,
packages=['package_name'],
package_dir={'package_name':'package_name'},
cmdclass={'install': CustomInstallCommand},
zip_safe=False)
但是,我发现:
- 如果我按上述方式运行 pip,则永远不会调用自定义代码
-
如果我这样做,自定义代码会运行:
python setup.py install --user
但我不确定如何将此命令与等效的 -e 选项一起使用,以便安装符号链接而不是文件副本。我怎样才能实现这两个?
【问题讨论】:
标签: python setuptools packaging