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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python封装对象实现时间效果
Apr 23 Python
python数据结构树和二叉树简介
Apr 29 Python
Python实现的检测网站挂马程序
Nov 30 Python
Python中Class类用法实例分析
Nov 12 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
python地震数据可视化详解
Jun 18 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
python批量修改xml属性的实现方式
Mar 05 Python
Python 使用office365邮箱的示例
Oct 29 Python
Python环境配置实现pip加速过程解析
Nov 27 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
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
jQuery Validation Engine验证控件调用外部函数验证的方法
2017/01/18 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
Python3中exp()函数用法分析
2019/02/19 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
学校运动会霸气口号
2014/06/07 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
2015年药房工作总结
2015/04/25 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers