美文网首页
7. Python3 模块路径问题彻解

7. Python3 模块路径问题彻解

作者: 闪电侠悟空 | 来源:发表于2017-07-08 11:48 被阅读0次

7.1让你的模块可用

  • 将模块放置在正确的位置,可用下面的函数查看“正确的位置”
>>> pprint.pprint(sys.path)
['',
 '/home/xx/$PYTHONPATH',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/usr/lib/python3.5/lib-dynload',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages']

注意:将自己的包/模块 放入到这些个目录中,即可用。

  • 告诉编译器去哪里找,貌似这是更加通用的做法
  1. 编辑sys.path: 这是一种临时配置的方式,再次打开python的时候路径掉了。
>>> import flash
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'flash'
>>> sys.path.append('/home/xx/Codes/eclipse/pythonbook/xx/')
>>> pprint.pprint(sys.path)
['',
 '/home/xx/$PYTHONPATH',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/usr/lib/python3.5/lib-dynload',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/home/xx/Codes/eclipse/pythonbook/xx/']
>>> import flash
>>> flash.flashprint('beauty')
Flash Print: beauty
  1. 标准的方法是:编辑PYTHONPATH环境变量,设置方法链接
sudo gedit /etc/environment # Terminal 打开环境变量文件
export PYTHONPATH=$PYTHONPATH:/home/xx/Codes/eclipse/pythonbook/xx/ # 文件中增加PYTHONPATH值
source /etc/environment # Terminal 中使之生效

效果是:

>>> pprint.pprint(sys.path)
['',
 '/home/xx/$PYTHONPATH',
 '/home/xx/Codes/eclipse/pythonbook/xx',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/usr/lib/python3.5/lib-dynload',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages']
>>> flash.flashprint('beauty')
Flash Print: beauty
  1. pth文件
    我的文件树结构如下
├── pythonbook
│   ├── xx
│   │   ├── flash.py
│   └── yy
│       ├── conf.pth
│       └── test.py

conf.pth 内容

/home/xx/Codes/eclipse/pythonbook/xx/

test.py 内容

print('YY is outputting')
import flash
flash.flashprint('beauty')
  • 直接运行test.py报错,可是我明明在pth文件中指明了flash.py的路径呀。尽管当前文件夹('')是python编译器查找的路径,但还是需要将pth文件放到别的编译器能够查找的位置,比如'/usr/lib/python3/dist-packages'。这样直接可以import该模块了(不存在路径问题)。
>>> pprint.pprint(sys.path)
['',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/usr/lib/python3.5/lib-dynload',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages']

相关文章

  • 7. Python3 模块路径问题彻解

    7.1让你的模块可用 将模块放置在正确的位置,可用下面的函数查看“正确的位置” 注意:将自己的包/模块 放入到这些...

  • Python 一些有趣的技巧,包括协程例

    1. 路径操作比起 os 模块的 path 方法,python3 标准库的 pathlib 模块的 Path 处理...

  • Ubuntu下非Root用户Python3解决modulenot

    和前一篇找不到_bz2模块是一样的问题,都是因为是在终端安装python3版本时,系统中缺少sqlite3模块,解...

  • 模块

    1.搜索路径 import导入模块时,如果报importError:No module named XXX 说明解...

  • Sublime Text 3 配置 python3 编译环境(U

    1. 获取 python3 路径 在终端下输入 即可显示 python3 所在路径,记下这个路径。 2. 新建编译...

  • 路径处理库pathlib使用记录

    Python3的系统标准库pathlib模块的 Path 对路径的操作会更简单,基本可以替代 os.path。新版...

  • Node(4)

    一、一些小问题 1.文件操作路径和模块读取路径的问题 我们使用fs核心模块系统进行文件操作时一般这样书写路径 我们...

  • Python 3.X 安装docx模块出现Import Erro

    问题复现 在使用doxc模块处理文档时候,通过命令: 安装docx模块后,在python3 中import doc...

  • Mac修改默认Python版本

    1.安装Python 3 2.查看Python3 安装路径 打开终端,输入which python3,查看路径:/...

  • 13-核心编程1

    模块导入问题 如何导入模块:import sys如何查看该模块路径:print(sys.path)如何要导入的模块...

网友评论

      本文标题:7. Python3 模块路径问题彻解

      本文链接:https://www.haomeiwen.com/subject/cqudhxtx.html