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编写一个图片主色转换的脚本
Dec 07 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
Python编写一个优美的下载器
Apr 15 Python
Django中使用第三方登录的示例代码
Aug 20 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
Python中如何引入第三方模块
May 27 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 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自定义函数收代码
2010/08/01 PHP
php 过滤器实现代码
2010/08/09 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python继承和抽象类的实现方法
2015/01/14 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
机器学习python实战之决策树
2017/11/01 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
用Python读取几十万行文本数据
2018/12/24 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
python标准库OS模块详解
2020/03/10 Python
python中什么是面向对象
2020/06/11 Python
个人自荐材料
2014/05/23 职场文书
宣传口号大全
2014/06/16 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
车辆年检委托书范本
2014/10/14 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL