在setup.py中点击目标并安装后

时间:2017-06-01 18:57:38

标签: python pip setup.py

今天我试图通过带有-t --target选项的pip安装我的软件包(python wheel)后删除文件。 Post-install script with Python setuptools 我在我的setup.py中继承了安装,如下所示:

class PostInstallCommand(install):
    """Post-installation for installation mode."""
    def run(self):
        install.run(self)
        # here I am using 
        p = os.path.join(self.install_libbase,"myPackage/folder/removeThisPyc.pyc")
        if os.path.isfile(p):
            os.unlink(p)
        #there is also self.install_platlib and
        #self.install_purelib which seem to be used by pip distutil scheme 
        #Have not tested those yet

运行时

python setup.py install

这样可以在安装时删除该文件。 但是通过

pip install path-to-my-wheel.whl

这不起作用,文件仍在那里。

pip install -t /target/dir path-to-my-wheel.whl

也不起作用...... 所以问题是,使用distutils和/或工具包做什么是pip,以及如何使这个工作? 我注意到的另一件事是pip似乎没有打印任何东西,我在我的setup.py中以详细模式打印? 有没有看到python的完整输出而不是“pip”的东西?

1 个答案:

答案 0 :(得分:0)

阅读教育: http://pythonwheels.com/ 2.避免安装任意代码执行。 (避免setup.py) 当我使用轮子和轮子时不会执行setup.py,我这样做的概念就是垃圾。 https://github.com/pypa/packaging-problems/issues/64

我想这是在部署和安装之间,虽然我显然认为我对安装的一点改变......

有没有办法避免在pip install whl上创建pyc文件?