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中实现的RC4算法
Feb 14 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
python数据结构之列表和元组的详解
Sep 23 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
python画出三角形外接圆和内切圆的方法
Jan 25 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 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
咖啡常见的种类
2021/03/03 新手入门
JSON 学习之完全手册 图文
2007/05/29 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
JsRender for object语法简介
2014/10/31 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python中的localtime()方法使用详解
2015/05/22 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
python实现关键词提取的示例讲解
2018/04/28 Python
Python的argparse库使用详解
2018/10/09 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
python实现人机五子棋
2020/03/25 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
销售员岗位职责范本
2014/02/03 职场文书
总经理任命书
2014/03/29 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
我的生日感言
2015/08/03 职场文书
自荐信范文
2019/05/20 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS