如何导入主目录中安装的模块?

时间:2015-09-02 14:04:33

标签: python unix module package pip

我在我的主目录中安装了Python3.4.3,因此它位于/home/jdoe/.local/bin/python3下,并通过执行pip install --user package_name来安装一些外部模块。但是现在编写我的python脚本时找不到包python,因为它正在查找usr/lib,但包不在那里。如何导入模块以便python查看我个人主目录中安装的站点包?

3 个答案:

答案 0 :(得分:2)

将路径附加到路径变量

import sys
sys.path.append("<path>")

但是你确定你的pip install --user实际安装了python3.4软件包,通常一个不需要为pip安装软件包的路径添加任何路径吗?

pip --version

的输出是什么

答案 1 :(得分:1)

正如this tutorial中所述,基本上有两种选择:使用PYTHONPATHsys.append

PYTHONPATH是一个环境变量,用于扩展目录是python搜索模块。它可以在运行python之前在命令行中设置:

$ export PYTHONPATH=$PYTONPATH:<Path to Module>
$ python

或在bash配置文件中添加行export PYTHONPATH=$PYTONPATH:<Path to Module>(即.bashrc)。如果在.bashrc中设置,那么计算机中执行的所有python脚本都将在那里搜索模块。

从python中调用

sys.append。它可以添加到调用模块的文件的开头,或者使用以下行调用python解释器:

import sys
sys.path.append('<Path to Module>')

答案 2 :(得分:0)

假设我有一个脚本属于$HOME/repo/code/sample.py,我想将其导入$HOME/repo2/code/sample.py的一种方法是:

import os 
import sys 
env=os.path.expanduser(os.path.expandvars($HOME/repo) # "source" directory with python script
sys.path.insert(0, env)
import code.sample 

这将删除对export PYTHONPATH的依赖性,使您可以像在其他模块一样轻松地在文件/文件夹之间导入。