python dist-packages 和 site-packages
2015-08-26 17:58
696 查看
dist-packages 和site-packages在我的ubuntu12上都在/usr/local/lib/python2.7目录下
今天安装django时发现一个奇怪的现象:
我使用 pip install Django==1.8.4安装的django,安装成功,直接在终端使用django-admin也成功,但是进入python:import dnango,却提示no module named django,真的百思不得其解。
查了一番资料后得知原因:
当python import模块的时候,就通过sys.path里面的目录列表下面去查找
我的django安装在dist-packages下面的,但是sys.path里面没有这个目录,当我使用os.sys.path.append将这个目录加入时,能够import了,但是这个随着python的重启就会消失。
然后我发现之前安装的pymysql没啥问题(忘了怎么装的了),然后我发现这个paramiko是安装在site-packages下面的,而sys.path列表里是有site-packages这个目录的
我的解决办法是将site-packages里建一个dist-packages/django的软连接,ok。当然更好的办法应该是将dist-packages加入sys.path
但是问题是这个dist-packages 和site-packages之间有啥不可见人的故事呢?搞得如此麻烦
dist-packages是debian系统及其衍生系统的默认python的模块默认安装目录,如果使用包管理器(如apt-get)安装python的模块,都会安装到/usr/lib/python2.7/dist-packages
而easy_install 和pip都是通过包管理器来安装python模块的,但是他们把安装包安装在/usr/local/lib/python2.7/dist-packages。而通过源(编译安装没试过,不知道)自己手动安装的python是使用site-packages来查找模块,这样做让系统的python模块和用户自己安装的模块分割开来,互不影响
btw: 在我的机子上,系统自带的python安装在/usr/lib/python2.7下面的,而我自己安装的python在/usr/local/lib/python2.7下面,在终端中直接输入python进入的是我自己装的python。
今天安装django时发现一个奇怪的现象:
我使用 pip install Django==1.8.4安装的django,安装成功,直接在终端使用django-admin也成功,但是进入python:import dnango,却提示no module named django,真的百思不得其解。
查了一番资料后得知原因:
当python import模块的时候,就通过sys.path里面的目录列表下面去查找
我的django安装在dist-packages下面的,但是sys.path里面没有这个目录,当我使用os.sys.path.append将这个目录加入时,能够import了,但是这个随着python的重启就会消失。
然后我发现之前安装的pymysql没啥问题(忘了怎么装的了),然后我发现这个paramiko是安装在site-packages下面的,而sys.path列表里是有site-packages这个目录的
我的解决办法是将site-packages里建一个dist-packages/django的软连接,ok。当然更好的办法应该是将dist-packages加入sys.path
但是问题是这个dist-packages 和site-packages之间有啥不可见人的故事呢?搞得如此麻烦
dist-packages是debian系统及其衍生系统的默认python的模块默认安装目录,如果使用包管理器(如apt-get)安装python的模块,都会安装到/usr/lib/python2.7/dist-packages
而easy_install 和pip都是通过包管理器来安装python模块的,但是他们把安装包安装在/usr/local/lib/python2.7/dist-packages。而通过源(编译安装没试过,不知道)自己手动安装的python是使用site-packages来查找模块,这样做让系统的python模块和用户自己安装的模块分割开来,互不影响
btw: 在我的机子上,系统自带的python安装在/usr/lib/python2.7下面的,而我自己安装的python在/usr/local/lib/python2.7下面,在终端中直接输入python进入的是我自己装的python。
相关文章推荐
- 使用python脚本生成随机密码
- Python RE模块
- Python局部变量和全局变量global
- Python中小中花括号的区别
- Python中if __name__ == "__main__":用法解析
- Python文件操作方法
- Python的参数模块OptionParser说明
- python generator 的惰性计算
- Python报错:SyntaxError: Non-ASCII character '\xe5' in file
- Python算术运算符
- Python os常用模块
- python 实例方法,类方法,静态方法
- torshammer
- [python] UDP客户端/服务器端
- python email mime使用
- python 闭包 装饰器
- python super用法
- python查询mx ns 记录
- Python GUI 以及绘图参考
- python解析ini、conf、cfg文件