python 指定源路径来解决import问题的操作


Posted in Python onMarch 04, 2021

用python做大型工程时,经常会出现import问题。比如,当你import另一个py文件时,这个py不存在于你的运行路径下,便会报错。

大概有两种方法:

如果在terminal里,咱们可以通过sys.path.append来添加运行路径;如果在pycharm环境里,咱们可以右键Mark Directory as Sources Root。

举个栗子:vim head.py

def add(a, b):
 return a + b

vim run.py

import head
a = 3
b = 4
c = head.add(a, b)
print(c)

咱们把head.py和run.py放在一个路径下,文件结构如下:

my_path
├── head.py
└── run.py

咱们运行run.py:

cd my_path
python run.py

直接成功运行没有毛病。但是,如果路径关系再复杂点呢?比如

my_path
├── folder_a
│ └── run.py
└── folder_b
└── head.py

如果cd my_path/folder_a,然后python run.py。肯定会报路径错误。这个时候,如果你是用pycharm开发这个工程,你可以直接

python 指定源路径来解决import问题的操作

倒数第三行,mark directory as source root。直接把folder_b设置为一个源根目录,这样folder_b下的文件都可以直接不加前缀地被import。

如果你是在terminal运行,没办法像pycharm那么设计,或者需要从pycharm部署到terminal时,你可以用sys.path.append()来添加源路径。

咱们只需要添加两句:

import sys
sys.path.append('../folder_b')
import head
a = 3
b = 4
c = head.add(a, b)
print(c)

只需要开头加两行就可以完成源路径的指定,源路径下的所有py都可以被不加前缀直接import。你学废了吗

补充:Python国内镜像源路径和设置方法

最近学习Python需要安装第三方的库,基本是国外网站,安装缓慢,于是找到了解决方法,记录下来:使用Python国内镜像源路径,可以快速安装。

国内源路径汇总:

清华:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

豆瓣:http://pypi.douban.com/simple/

使用案例:

例如:pip3 install -i https://pypi.doubanio.com/simple/ 包名

临时使用方式:

可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple

例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyqt5,这样就会从清华这边的镜像去安装pyqt5库。

永久修改使用方式:

Linux下,修改 ~/.pip/pip.conf (没有就创建一个文件夹及文件。文件夹要加“.”,表示是隐藏文件夹)

内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

windows下,直接在user目录中创建一个pip目录,再新建文件pip.ini。(例如:C:\Users\WQP\pip\pip.ini)内容同上。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
python计算时间差的方法
May 20 Python
Python 功能和特点(新手必学)
Dec 30 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python生成密码字典的方法
Jul 06 Python
python读取Excel实例详解
Aug 17 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
Jul 11 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 Python
Python实现自动整理文件的脚本
Dec 17 Python
Python列表删除重复元素与图像相似度判断及删除实例代码
May 07 Python
python源文件的字符编码知识点详解
Mar 04 #Python
python3判断IP地址的方法
Mar 04 #Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 #Python
python和opencv构建运动检测器的实现
Mar 03 #Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 #Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 #Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 #Python
You might like
一个PHP的String类代码
2010/04/20 PHP
php实现天干地支计算器示例
2014/03/14 PHP
php实现cookie加密的方法
2015/03/10 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
Python yield使用方法示例
2013/12/04 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
Python导入oracle数据的方法
2015/07/10 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
django Serializer序列化使用方法详解
2018/10/16 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
Python实现AI换脸功能
2020/04/10 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
应届生财务管理求职信
2013/11/06 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
小学老师寄语大全
2014/04/04 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
贪污检举信范文
2015/03/02 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Go语言基础知识点介绍
2021/07/04 Golang
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript