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入门篇之正则表达式
Oct 20 Python
介绍Python中的__future__模块
Apr 27 Python
星球大战与Python之间的那些事
Jan 07 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
详解Tensorflow数据读取有三种方式(next_batch)
Feb 01 Python
详解Python是如何实现issubclass的
Jul 24 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Python 解析简单的XML数据
Jul 24 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
Python 多线程之threading 模块的使用
Apr 14 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
谈谈PHP语法(2)
2006/10/09 PHP
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
javascript 继承实现方法
2009/08/26 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
深入浅析Python字符编码
2015/11/12 Python
python异常和文件处理机制详解
2016/07/19 Python
python中的随机函数random的用法示例
2018/01/27 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
车间组长岗位职责
2013/12/20 职场文书
学年末自我鉴定
2014/01/21 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
房地产端午节活动方案
2014/08/24 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
python非标准时间的转换
2021/07/25 Python