我的MANIFEST.in内容已安装到与其余包不同的位置

时间:2018-10-02 03:01:02

标签: python manifest setuptools

我正在使用setuptools在python中创建一个包。我正在使用MANIFEST.in文件包含我的程序包利用的依赖项。我将MANIFEST.in的内容指定如下:

  

包含递归的包/ dependency_directory *

该软件包的生成和安装没有错误。但是,当我从一个入口点调用该程序包时,我看到该脚本失败了,因为它找不到到MANIFEST.in内容的正确文件路径。

包裹正在寻找的路径是这样:

  

/Users/Xerez/Library/Caches/Python-Eggs/qasar-0.1-py2.7.egg-tmp/qasar/fastqc/fastqc

其余的软件包安装在:

  

/Users/Xerez/anaconda2/lib/python2.7/site-packages/qasar-0.1-py2.7.egg

但是,在我的IDE中,当我问软件包在哪里使用以下代码时:

DATA_PATH = pkg_resources.resource_filename('qasar', 'fastqc/fastqc')

我得到以下文件路径:

  

/Users/Xerez/anaconda/lib/python2.7/site-packages/qasar-0.1-py2.7.egg/qasar/fastqc/fastqc

当我使用此路径从IDE中运行脚本时,一切正常。我认识到MANIFEST.in与软件包其余部分的安装位置不同,而我的IDE正在调用另一种不同形式的python。如何强制安装将所有内容放在相同的version_of_anaconda / location中?

我将a link附加到具有简化版本的软件包的bitbucket存储库中,这可能有助于回答此问题。链接也写在下面:

  

https://bitbucket.org/arp2012/stackoverflow/src/master/

对于这个问题的答案微不足道,我深表歉意,但是我暂时未能找到解决该问题的方法,因此决定寻求帮助。预先谢谢你!

1 个答案:

答案 0 :(得分:0)

最终,我可以通过将软件包安装在仅安装了一个版本的python和anaconda的docker容器内来解决多python路径问题。但是,这种解决方案既不理想也不优雅。