Python:是否可以从多个外部库中创建一个包?

时间:2016-07-29 15:22:20

标签: python git pycharm packages

过去几天这个问题让我疯狂。

基本上,我试图将Pure Python项目移植到适当的PyCharm项目。这是为了基本上提高代码质量和项目结构。

我希望它就像基本上创造一个能够存放一切的虚拟物一样简单,但它不是。该项目最终将由多个开发人员同时开发,Git作为源代码控制,默认库将被修改。我认为这意味着理想情况下最好由Git跟踪库。据我所知,Virtualenv不应该在这里提供帮助,因为它不能在系统之间移植(或者至少还在测试中)。

此项目将来也将部署到Centos服务器。

因此,我能想到成功实现这一目标的唯一方案是简单地将所有库(使用pip install -t Libraries <ExampleLibrary>完成)引入单个文件夹,里面有__init__.py ,并将它们作为Pycharm项目中的包用在其他python文件中。

这可能/推荐吗?我尝试了各种方法来引用这些库,但它们都不能在运行时工作。不知何故,当库中的文件从他们自己的包中导入其他内容时,会引发一个ImportError,说明没有这样的模块。

也会接受任何其他建议。

使用Pycharm Community Edition。

编辑:在度过了一个美好的夜晚之后,我认为问题的关键在于项目组织。在我将它移植到Pycharm之前,该项目按预期工作,但是它拥有根目录中的所有python文件,以及根目录的子文件夹中的库,每个项目文件都具有相同的样板代码: import os, sys absFilePath = os.path.dirname(os.path.abspath(__file__)); sys.path.insert(1, absFilePath + "/lib")

我希望通过使用Pycharm来帮助我充实包装,我可以避免重复样板代码。

1 个答案:

答案 0 :(得分:0)

注意:不是完整解决方案。

下面添加模板代码会强制包含代码的文件与libs文件夹位于同一目录中。

对于Pycharm,我所要做的就是将libs文件夹标记为源文件夹。即使向文件中添加了模板代码,修改后的库仍可按预期工作。

对于Python Shell,仍然需要此模板代码:

import os
import sys

absFilePath = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(1, absFilePath + "/lib")