Setuptools:从setup.py

时间:2018-08-09 20:05:23

标签: setuptools setup.py

好的,这很神秘又烦人。

我们正在开发一个程序包/应用程序,我想要一种简单的方法来安装所有依赖项,并使开发人员可以对其进行编辑,以便他们可以签出并继续使用。没问题吧? pip install -e .

...好吧,顺利。该软件包取决于一些专有的.egg文件,这些文件通过install.py脚本打包在tar文件中,因此必须首先安装这些文件。他们希望您tar -xzfpython install.py来安装它们,而我在那里没有很多灵活性。

很好,很好...我认为已建立的过程是在我的setup.py中将开发/安装命令子类化,并在运行基本安装或开发命令之前安装鸡蛋,所以我只做了{{1 }}函数可解压缩所有内容,然后仅使用install_eggs运行其subprocess.Popen脚本(有很多方法可以执行此操作,而我尝试了install.py等),然后删除了临时目录,并使用

将其合并到我的命令中

execfile

太好了!除非在命令中执行此操作确实会提取它更新class DevelopWrapper(develop): def run(self): install_eggs() develop.run(self) ...

的egg文件和SAYS。

谎言。

在命令中执行此操作可能会阻止easy-install.pth文件的更新(我认为,因为开发子类易于安装,所以也许它已经打开了该文件,然后将其覆盖了?)。如果我只是将easy-install.pth调用放在基础级别的setup.py文件中,以使其每次都运行,则效果很好; install_eggs()得到更新,一切正常。但这意味着无论我的easy-install.pth如何运行(通过pip,install,egg-info等信息),都将安装额外的鸡蛋

因此:如何在setup.py脚本中从tar文件中安装一堆本地.egg文件,就像它们是依赖关系一样?有什么好方法吗?

0 个答案:

没有答案