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 2.6 升级至 Python 2.7 的实践心得
Apr 27 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
python输出决策树图形的例子
Aug 09 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
使用Django清空数据库并重新生成
Apr 03 Python
如何利用Python识别图片中的文字
May 31 Python
Python带参数的装饰器运行原理解析
Jun 09 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
MySQL连接数超过限制的解决方法
2011/07/17 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
flask框架路由常用定义方式总结
2019/07/23 Python
python利用tkinter实现屏保
2019/07/30 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
软件测试常见笔试题
2012/02/04 面试题
汽车装潢店创业计划书范文
2014/02/05 职场文书
大学生社会实践方案
2014/05/11 职场文书
自主招生学校推荐信
2014/09/26 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
为自己工作观后感
2015/06/11 职场文书
初二数学教学反思
2016/02/17 职场文书
导游词之神仙居景区
2019/11/15 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers