解释Python的站点包。我把库放在那里吗?

时间:2011-10-24 23:02:32

标签: python import ironpython

我最近发现了一个以Python为代码的新项目。我之前从未做过Python - 来自C / C ++编译代码世界。我遇到了一些了解我当前代码库的问题。

当我们编写代码时,我们有我们的库(比其他代码更通用的组件),以及我们的应用程序代码(应用库的代码),对吧?在我以前参与过的项目中,我会将我的库代码和应用程​​序保存在一个项目文件夹中的包含文件夹中。在C / C ++版本中,会有一个makefile(或一些make系统)将所有内容挂钩,以便包含所有工作。

    Project/
           Library/
                   Utilities.cpp
           Application/
                   Main.cpp
           makefile

我现在进入的项目在site-packages文件夹中有自己的库,该文件夹本身位于IronPython / Python系统文件夹中。该库代码是我们的,并且仍然是“热门”并正在进行中。应用程序代码在系统的其他位置。

这似乎是糟糕的设计,但我的同行们坚持认为这只是“Python的工作原理”。 Python支持包含/导入。难道一切都不应该是自给自足的吗?散布这样的代码似乎很奇怪。

谢谢!

3 个答案:

答案 0 :(得分:7)

Python库通常通过distutilssetuptools安装。这些实用程序将库安装在python的site-packages文件夹中,这是python知道在遇到import x语句时查找库的地方。

直接在site-packages文件夹中开发代码似乎有点奇怪,尽管技术上没有任何问题。通常,你会有这样的事情:

./app1.py
./lib1/__init__.py
./lib1/lib1.py
./lib2/__init__.py
./lib2/lib2.py
...etc

然后当你准备打包库时,你可以使用上面提到的一个util来做(这会将lib安装到site-packages)。

所以,回答你的问题:没有硬性规定。我认为大多数python开发人员都不愿意直接在site-packages开发。

* Setuptools还有一个名为develop的命令,用于在site-packages中安装指向开发库的链接。我已经使用过几次,效果很好。

答案 1 :(得分:2)

通常,第三方库会被安装程序(例如 pip ,* easy_install *或 distutils )添加到 site-packages setup.py 。对于正在开发的本地开发的“热库”,它们通常有自己的目录树, python.exe 使用 PYTHONPATH 环境变量(用于设置)查找它们sys.path中)。

答案 2 :(得分:-3)

使用Eclipse轻松导入这些库。 安装Easy_install并从命令提示符导入所有这些库。 现在在Eclipse中,只需在您的首选项和wola中链接这些库!你准备好了!