Python路径:重用Python模块
我写了一个小的数据库访问模块,这个模块在很多程序中都被广泛使用。
为了备份和版本管理,我把我的代码放在一个单独的目录树里,路径是/projects
,所以这个模块应该放在这个目录树中,比如放在/projects/my_py_lib/dbconn.py
。
我想简单地配置Python,让它自动在/projects/my_py_lib
这个目录下搜索模块(当然,任何子目录里都应该放一个__init__.py
文件)。
在Ubuntu系统下,最好的方法是什么呢?
谢谢,
亚当
3 个回答
0
另一种选择是在 /usr/lib*/python*/site-packages/
目录下创建一个软链接:
ln -s /projects/my_py_lib /usr/lib*/python*/site-packages/
这样一来,所有的Python程序都能看到这个项目,而且任何更改也会立即生效。
不过主要的缺点是,如果你不在切换用户之前自己编译文件,最终会有一些 *.pyc
文件是由root用户或其他用户拥有的。
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解释器时,它都会被导入。
8
你可以在你的 .bashrc
文件中添加一个 PYTHONPATH
环境变量。比如:
export PYTHONPATH=/projects/my_py_lib