【问题标题】:Running post install code from PyPi via pip通过 pip 从 PyPi 运行安装后代码
【发布时间】:2017-11-23 03:25:24
【问题描述】:

从 PyPi 下载我的 python 包后,我正在尝试运行一段代码。

我在我的setuptools.setup 中设置了一个自定义cmdclass

from setuptools import find_packages, setup
from setuptools.command.install import install


class CustomInstallCommand(install):
    def run(self):
        print "Here is where I would be running my code..."
        install.run(self)



setup(
  name = 'packagename',
  packages=find_packages(),
  version = '0.1',
  description = '',
  author = '',
  cmdclass={
    'install': CustomInstallCommand,
  },
  author_email = '',
  url = '',
  keywords = [],
  classifiers = [],
)

当我运行python setup.py install 输出我的打印语句时,这非常有用。但是,当我构建 tar.gz 包(使用python setup.py sdist)并尝试通过 pip(pip install dist/mypackage-0.1.tar.gz)安装时,打印语句永远不会打印。我还尝试将构建的包上传到 PyPi 并从那里进行 pip 安装。

我看过一个类似的问题asked on stackoverflow,但解决方案不起作用。

【问题讨论】:

  • 您是否尝试过使用pip install -v ... 提高详细级别?
  • @NilsWerner 哦,我想它一直都在那里,但被压制到标准输出。所以即使它没有从 pip 显示,它仍然在运行?
  • 是的。如果没有错误,pip 只是隐藏所有输出

标签: python pip setuptools pypi


【解决方案1】:

pip install 确实运行您的自定义命令,它只是隐藏了来自setup.py 的所有标准输出。要提高详细程度并查看命令输出,请尝试运行

pip install -v ...

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多