Python路径:重用Python模块

时间:2010-02-24 11:03:55

标签: python ubuntu path

我编写了一个小型数据库访问模块,该模块在许多程序中得到了广泛的重用。

我的代码存储在单个目录树/projects中,用于备份和版本控制,因此模块应放在此目录树中,例如/projects/my_py_lib/dbconn.py

我想轻松配置Python以自​​动搜索/projects/my_py_lib目录结构中的模块(当然,__init__.py应该放在任何子目录中。)

在Ubuntu下执行此操作的最佳方式是什么?

谢谢,

亚当

3 个答案:

答案 0 :(得分:8)

您可以在PYTHONPATH文件中添加.bashrc环境变量。例如

export PYTHONPATH=/projects/my_py_lib

答案 1 :(得分:2)

在linux上,这个目录将自动添加到你的sys.path中,用于pythonN.M

~/.local/lib/pythonN.M/site-packages/

所以你可以把你的软件包放在你正在使用的每个版本的python中。

每个版本的python都需要一个副本,否则每次使用不同的python版本导入模块时都会重新编译.pyc文件

如果模块仅适用于已安装的某些python版本,这也允许细粒度控制

如果您创建此文件

~/.local/lib/pythonN.M/site-packages/usercustomize.py

每次启动python解释器时都会导入它

答案 2 :(得分:0)

另一种选择是在/usr/lib*/python*/site-packages/中创建一个软链接:

ln -s /projects/my_py_lib /usr/lib*/python*/site-packages/

这将使项目对所有Python程序可见,并且任何更改也会立即显示。

主要缺点是你最终会拥有root或其他用户拥有的*.pyc个文件,除非你确保在以另一个用户启动python之前自己编译文件。