我编写了一个小型数据库访问模块,该模块在许多程序中得到了广泛的重用。
我的代码存储在单个目录树/projects
中,用于备份和版本控制,因此模块应放在此目录树中,例如/projects/my_py_lib/dbconn.py
。
我想轻松配置Python以自动搜索/projects/my_py_lib
目录结构中的模块(当然,__init__.py
应该放在任何子目录中。)
在Ubuntu下执行此操作的最佳方式是什么?
谢谢,
亚当
答案 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之前自己编译文件。