【发布时间】:2016-07-30 12:36:32
【问题描述】:
在过去的几天里,这个问题一直让我发疯。
所以基本上,我正在尝试将纯 Python 项目移植到适当的 PyCharm 项目。这是为了从根本上提高代码质量和项目结构。
我希望它就像创建一个虚拟环境来容纳所有东西一样简单,但事实并非如此。该项目最终将由多个开发人员同时开发,使用 Git 作为源代码控制,并且默认库将被修改。我认为这意味着最终应该由 Git 跟踪库。据我所知,Virtualenv 在这里不应该有帮助,因为它不能在系统之间移植(或者至少仍在测试中)。
这个项目将来也会被部署到 Centos 服务器上。
所以我能想到的唯一成功实现这一目标的计划就是简单地将所有库(使用 pip install -t Libraries <ExampleLibrary> 完成)放入一个文件夹中,其中包含 __init__.py,然后使用它们从其他 python 文件作为 Pycharm 项目中的一个包。
这可能/推荐吗?我尝试了各种方法来引用这些库,但它们在运行时都不起作用。不知何故,当库中的文件从他们自己的包中导入其他内容时,会引发 ImportError 说没有这样的模块。
也会接受任何其他建议。
使用 Pycharm 社区版。
编辑:在好好休息一晚后,我认为问题的症结实际上只是项目组织。在我将它移植到 Pycharm 之前,该项目按预期工作,但是根目录中的所有 python 文件和根目录中的子文件夹中的库,每个项目文件都具有相同的样板代码:
import os, sys
absFilePath = os.path.dirname(os.path.abspath(__file__));
sys.path.insert(1, absFilePath + "/lib")
我希望通过使用 Pycharm 来帮助我充实包,我可以避免重复的样板代码。
【问题讨论】:
-
为什么要修改依赖项?这通常会给您带来问题...您可以从它们继承并添加/修改要更改的功能吗?如果您绝对需要供应商的东西,请查看 requests 库,该库在其 repo 中有自己的几个包的版本。 (如果你要修改依赖项,它们必须从一开始就在 git 中!)
-
我的修改只是一些库函数中的单行代码,我认为它们不应该破坏结构?您从库中继承的建议是我没有考虑过的,但我不知道如果我朝着这个方向前进,我将如何做出我想做的改变。是的,在将项目移植到 Pycharm 之前的最初计划是将这些库放在项目文件夹旁边的 git repo 中。但是现在我只想有一个更好的项目结构,因为以前,所有东西都在根文件夹中,这使得事情变得混乱。
-
如果您的代码质量不是很好,您可能想了解如何修复那个。添加一个 IDE 不可能神奇地解决你的任何问题,即使是像 Pycharm 这样好的问题。
-
我是否正确地阅读了您正在尝试做的事情除了使用您的普通
pip install'd 库?因为……不要那样做,那是个可怕的主意。 -
好吧,我来自 Java 背景,所以我仍然非常坚持他们的命名约定。至少 Pycharm 强制执行 PEP-8,我认为这很好。我使用了 pip -t libs install LibraryX,我猜 pip 将库安装到相对于 shell 的特定文件夹中,而不是主要的 Python 站点包库。这不是一个好习惯?
标签: python git pycharm packages