我最近发现了一个以Python为代码的新项目。我之前从未做过Python - 来自C / C ++编译代码世界。我遇到了一些了解我当前代码库的问题。
当我们编写代码时,我们有我们的库(比其他代码更通用的组件),以及我们的应用程序代码(应用库的代码),对吧?在我以前参与过的项目中,我会将我的库代码和应用程序保存在一个项目文件夹中的包含文件夹中。在C / C ++版本中,会有一个makefile(或一些make系统)将所有内容挂钩,以便包含所有工作。
Project/
Library/
Utilities.cpp
Application/
Main.cpp
makefile
我现在进入的项目在site-packages文件夹中有自己的库,该文件夹本身位于IronPython / Python系统文件夹中。该库代码是我们的,并且仍然是“热门”并正在进行中。应用程序代码在系统的其他位置。
这似乎是糟糕的设计,但我的同行们坚持认为这只是“Python的工作原理”。 Python支持包含/导入。难道一切都不应该是自给自足的吗?散布这样的代码似乎很奇怪。
谢谢!
答案 0 :(得分:7)
Python库通常通过distutils或setuptools安装。这些实用程序将库安装在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中链接这些库!你准备好了!