首页 > 编程语言 >python自定义库文件路径

python自定义库文件路径

时间:2022-12-19 13:35:15浏览次数:60  
标签:dist 自定义 lib python 路径 python2.7 Python usr packages

各有各的小烦恼,各有的小期待

这是人家私事,不要大嘴巴

 

在Pycharm中import whois时,总是失败

原因是安装了python3.x
相关操作过程,将环境变量path中关于Python的配置c:\Python27和c:\Python27\Scripts都删除,pycharm中仍然没有找到whois module

import whois
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.1.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21,
in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Developer\python\spider\demo\whois.py", line 1, in <module>
from whois import whois
ImportError: cannot import name whois

但Setting中的配置显示,这个第三方类库是有安装的。

然后把C:\Users\用户名\AppData\Local\Programs\Python下的Python36-32文件夹删除。

然后Pycharm中识别了下面显示的whois Package


python自定义库文件路径_ubuntu

一般来说,我们会将自己写的Python模块与python自带的模块分开存放以达到便于维护的目的。

Python 运行环境在查找库文件时是对 sys.path 列表进行遍历,如果我们想在运行环境中注册新的类库,主要有以下三种方法:

  1. 在sys.path列表中添加新的路径。
  2. 设置PYTHONPATH环境变量。
  3. 将库文件复制到sys.path列表中的目录里(如site-packages目录)。

其实,最简单的办法是用 .pth 文件来实现。Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,这样 .pth 文件说指明的库也就可以被 Python 运行环境找到。

windows环境:

C:\Users\Administrator>set PYTHONPATH=E:/Project/Python/ModuleAndPackage/

C:\Users\Administrator>python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'E:\\Project\\Python\\ModuleAndPackage',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python\\DLLs', 'C:\\Python\\lib',
'C:\\Python\\lib\\plat-win',
'C:\\Python\\lib\\lib-tk',
'C:\\Python', 'C:\\Python\\lib\\site-packages']
>>>


Linux环境:
echo " export PYTHONPATH=/Project/Python/ModuleAndPackage/" >>/etc/profile
source /etc/profile

操作:

在Python/Lib/site-package目录下创建一个MyModule.pth文件,其中内容为自定义的模块所在的路径。

C:\Project 
这样Project目录下的python文件就可以被找到了


学习python不久,碰到个问题,怎么样把自己写的模块加入到python默认就有的搜索路径中呢?不要每次非得import sys; sys.path.append(‘/home/fightlikekobe/python’)才可。
上网找了很多久未果,都来我自己糊里糊涂找到了解决方法,那就是在dist-packages(即/usr/local/lib/python2.7/dist-packages)添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的文件名称就是了,如我的:
/home/fightlikekobe/python
保存退出,OK!结果自己验证,重启terminal,再次打开python,
>>> import sys
>>> sys.path
['/home/fightlikekobe', '/usr/bin', '/usr/local/lib/python2.7/dist-packages/pymysql_sa-1.0-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/PyMySQL-0.5-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/hiredis-0.1.0-py2.7-linux-i686.egg', '/usr/local/lib/python2.7/dist-packages/SQLAlchemy-0.7.3-py2.7-linux-i686.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages', '/home/fightlikekobe/python', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']

​http://blog.sina.com.cn/s/blog_59ba44680100z0mt.html​

 



标签:dist,自定义,lib,python,路径,python2.7,Python,usr,packages
From: https://blog.51cto.com/u_15147537/5951941

相关文章

  • 【QT开发问题】使用自定义的QGroupBox,重写绘图事件paintEvent后边框消失的问题
    问题描述Qt界面开发过程中,使用自定义的QGroupBox,重写绘图事件paintEvent时,出现边框被覆盖的情况,或边框消失的问题。左图是原始状态,直接重写绘图事件后,会变成右图空白状态......
  • 30python中列表-字典-字符串-三目运算符
    好文手敲下,每天码代码~加油三目运算符a=1b=2#a+b不大于3执行后面的else语句b-a=1print(a+bifa+b>3elseb-a)一、列表1.1列表的定义​ 白话来讲:放数......
  • Python__07--input
    1input()描述:input()函数是输入性函数,与print()函数类似,input()函数括号里的内容是会显示出来的,但不同在于,我们需要输入对应的内容,回车后才能继续运行。1.1测试代码......
  • Python__07--input
    1input()描述:input()函数是输入性函数,与print()函数类似,input()函数括号里的内容是会显示出来的,但不同在于,我们需要输入对应的内容,回车后才能继续运行。1.1测试代码......
  • Python__07--input
    1input()描述:input()函数是输入性函数,与print()函数类似,input()函数括号里的内容是会显示出来的,但不同在于,我们需要输入对应的内容,回车后才能继续运行。1.1测试代码......
  • Python__07--input
    1input()描述:input()函数是输入性函数,与print()函数类似,input()函数括号里的内容是会显示出来的,但不同在于,我们需要输入对应的内容,回车后才能继续运行。1.1测试代码......
  • Python文件读写w+和r+区别解析
    转载自https://cloud.tencent.com/developer/article/1741427r+读写,从头开始写,但是不会预先覆盖所有文档内容w+读写,从头开始写,并且预先清空文档内容,再写......
  • python网络爬虫—对b站相关视频的播放量和点赞量数据分析
    Python网络爬虫—对B站相关视频的播放量和点赞量数据分析一、选题背景目的:探索视频点赞量和播放量的关系。预期目标:通过获取大量相关数据,得到两者之间的简单线性关系,描述:本......
  • python-进程
    序.multiprocessingpython中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multip......
  • Java如何实现自定义异常
    自定义异常概述为什么需要自定义异常类:我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己......