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

My MANIFEST.in content installed to distinct location from rest of package

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

recursive-include package/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 存储库,它有一个精简版的软件包,可以帮助回答这个问题 question.The link 也写在下面:

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

如果这个问题的答案很简单,我深表歉意,但我暂时找不到解决这个问题的方法,所以决定寻求帮助。提前致谢!

最终,我通过将软件包安装在 docker 容器中解决了多个 python 路径问题,该容器只安装了一个版本的 python 和 anaconda。然而,这个解决方案既不理想也不优雅。