ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Centos6 python3 导入第三方函数库,自定义函数库的几种配置方法(sys.path, PYTHONPATH, .pth, 环境变量)

2019-07-07 15:04:16  阅读:381  来源: 互联网

标签:函数库 lib pth sys python3.7 usr local python3 自定义


假设自定义模块 ship.py 在 /tmp/my_modules/ 这个目录中,我们需要随时在 python3 中导入这个模块,怎样才可以做到呢?下面我们介绍几种配置路径的方法:

1. 修改 python 目录搜索路径 sys.path

# 运行 python3
python3
# 导入 sys 模块,并查看工作搜索路径
>>> import sys
>>> sys.path
['', '/usr/local/python3/lib/python37.zip', '/usr/local/python3/lib/python3.7', '/usr/local/python3/lib/python3.7/lib-dynload', '/usr/local/python3/lib/python3.7/site-packages']
# 添加自定义目录路径
>>> sys.path.append('/tmp/my_modules')
# 再次查看搜索路径, 成功加入 '/tmp/my_modules' 
>>> sys.path
['', '/usr/local/python3/lib/python37.zip', '/usr/local/python3/lib/python3.7', '/usr/local/python3/lib/python3.7/lib-dynload', '/usr/local/python3/lib/python3.7/site-packages', '/tmp/my_modules']
# 导入 ship 模块,没有报错
>>> import ship
# 退出 python3
>>> exit()

# 再次运行 python3
python3
# 导入 sys 模块,并查看工作搜索路径
>>> import sys
# 搜索路径没有 '/tmp/my_modules' 这个目录路径
>>> sys.path
['', '/usr/local/python3/lib/python37.zip', '/usr/local/python3/lib/python3.7', '/usr/local/python3/lib/python3.7/lib-dynload', '/usr/local/python3/lib/python3.7/site-packages']

    从这两次操作中可以看出,修改 sys.path 只能在当前 python 进程中有效。退出 python 后,自定义添加的路径自动清除。

    所以,这种方法只能临时添加,非一劳永逸。

 

2. 使用 .pth 文件添加模块

    在第1种方法中, sys.path 显示的搜索路径 /usr/local/python3/lib/python3.7/site-packages 中建立 .pth 文件,将模块的路径写进去,一行一路径。

# 进入 site-packages 目录
cd /usr/local/python3/lib/python3.7/site-packages

# 建立 .pth 文件,并写入路径
vim my_file.pth
# 写入模块路径
/tmp/modules
# 保存,退出
:wq

    查看 sys.path 搜索路径,/tmp/my_modules' 这个目录路径已被添加到里面。并且能成功导入 ship 模块。

    这种方法是永久添加的。

 

3. ln 软链接添加法

    直接在 /usr/local/python3/lib/python3.7/site-packages 目录建立 ship.py 模块的软链接。

ln -s /tmp/my_modules/ship.py  /usr/local/python3/lib/python3.7/site-packages/ship.py

    此方法易使 site-packages 目录中的模块混乱,不易管理,不可取。

 

4. 添加 PYTHONPATH 环境变量

vim /etc/bashrc
# 在末尾添加以下代码
export PYTHONPATH=/tmp/my_modules/

# 保存退出后,执行以下指令
source /etc/bashrc

配置完成后,打开一个新的终端或bash shell,运行 python3 成功导入 ship 模块。同时,sys.path 包含了 ship.py 的路径。

 

注:也可以在 /etc/profile 中添加PYTHONPATH,添加后需要重启电脑才能生效。

标签:函数库,lib,pth,sys,python3.7,usr,local,python3,自定义
来源: https://blog.csdn.net/it_is_a_world/article/details/94910695

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有