gpl*_*ssm 8 python installation pip setuptools package
我尝试配置我的包,以便在安装过程中执行脚本.因此,我继承了setuptools.command install并创建了我的自定义类ActionOnInstall来安装包时做的事情.这个类是通过setuptools的称为setup()参数cmdclass描述这里.
这样的setup.py文件的最小示例如下所示
from setuptools import find_packages, setup
from setuptools.command.install import install
class ActionOnInstall(install):
def run(self):
print("Call install.run(self) works!")
install.run(self)
setup(name='name',
cmdclass={
'install': ActionOnInstall})
Run Code Online (Sandbox Code Playgroud)
通过执行构建包
pip3 install <path-to-dir-with-setup.py>
Run Code Online (Sandbox Code Playgroud)
运行成功但不执行指定的命令ActionOnInstall.run().更直接地称这个setup.py为
python3 setup.py install
Run Code Online (Sandbox Code Playgroud)
执行中指定的命令ActionOnInstall.run().
然后,我发现自己在问:这两种安装包的方法的实际区别是什么.我知道,就像其他帖子告诉我们的那样,pip使包安装的生活变得更轻松.但是这两种方法如何对待不同的cmdclass论点setup()并没有得到解释.因此,我非常感谢你们.
pip调用你的setup.py,但它重定向stdout/stderr.要在pip下测试setup.py,请写入固定位置的文件:
class ActionOnInstall(install):
def run(self):
print("Call install.run(self) works!", file=open('/tmp/debug.log', 'w'))
install.run(self)
Run Code Online (Sandbox Code Playgroud)
之后查看/tmp/debug.log pip install .
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |