有几种方法可以在 python 中导入外部库。最简单的方法是从与文件相同的目录启动程序或解释器,所以
$ mkdir new_program
$ mv ~/Downloads/mvncdf.py new_program/.
$ cd new_program
$ python
>>> import mvncdf
或者,正如@tcaswell 所建议的,您可以向PYTHONPATH
环境变量添加本地路径,
$ mkdir ~/python_scripts
$ mv ~/Downloads/mvncdf.py python_scripts/.
$ PYTHONPATH=$PYTHONPATH:$HOME/python_scripts
$ export PYTHONPATH
最后两行可以放在~/.bashrc
or中~/.bash_profile
,以便每次登录时设置变量。
sys.path
一种更持久的方法是在您的本地用户“安装”程序应该去的地方找到一个目录。按照惯例,它位于site-packages
您的发行版的目录之一中。如果您使用 python 2.7 版,这可能是:
$ sudo mv ~/Downloads/mvncdf.py /usr/lib/python2.7/site-packages/.
您可以sys.path
从 python shell检查哪些目录在您的
>>> import sys
>>> for i in sys.path:
... print i
...
但是,不鼓励将您自己的文件放在类似/usr/lib/python2.7/site-packages/
的位置,因为它们可能会在 python 更新期间被覆盖。最合适的方式,也是最接近 FHS 的方式,是在site-packages
下创建一个目录/usr/local
,例如,
$ sudo mkdir -p /usr/local/lib/python2.7/site-packages
然后编辑/usr/lib64/python2.7/site.py
,找到PREFIXES
变量,并将新目录添加到列表中,例如,
PREFIXES = [sys.prefix, sys.exec_prefix, '/usr/local']
Ubuntu 中可能已经有这个目录sys.path
,所以在创建和编辑之前检查一下site.py
。当然,如果您确实必须修改site.py
. ,那么在升级 python 时会遇到相同的问题,只需将文件放在/usr/lib
.