解决python调用自己文件函数/执行函数找不到包问题


Posted in Python onJune 01, 2020

写python程序的时候很多人习惯创建一个utils.py文件,存放一些经常使用的函数,方便其他文件调用,同时也更好的管理一些通用函数,方便今后使用。或是两个文件之间的class或是函数调用情况。

就像下面的工程目录一样:

工程目录

Project\
 ...
 src\
 main.py
 utils.py
 test.py
 ...

python调用其他文件中的函数

在main.py文件中加入一下语句即可调用utils.py下面的函数:‘'

import src.utils as utils
X, y = utils.load_data()

开发python的习惯使用IDE,比如pycharm,pydev等,在这些IDE中使用方便,可以轻松的更换解释器,在文件右键运行即可,没有问题。使用上述的方法也不会有其它问题。

可是当你现在本地写code,然后发现本地计算资源不够,想到了服务器,服务器是ubuntu的。

于是乎用ssh admin@219.224.30.xxx.登录服务器,然后选择一个本人的文件工程目录下面用scp命令将本地代码拷贝过去,或是用git clone https://github.com/xxx将代码仓库代码拷贝到服务器上,然后cd Project/,敲下python main.py,发现报出No module named ‘src'.错误,于是上网上搜代码,有人给出解决方案“把工程目录里面加入sys就行了”

import sys
sys.path.append('D:/pythonworkspace')

没错在本地是能解决问题,但是换个别的盘呢?又得改代码。在服务器上呢,What? D盘?ubuntu哪来的D盘?还得改代码

原因

在文件中写下面两句python代码

import sys
print(sys.path)

分别用pycharm和shell执行,发现两个输出的是不一样的:

pycharm输出:

D:\\pythonworkspace\\Project

shell输出:

D:\\pythonworkspacr\\Projecrt\\src

有人觉得,原来是这个样子,于是乎cd ..,然后python src/test.py,可是发现还是会报错,找不到module。

原因是pycharm执行文件的时候路径是整个工程下的路径,而shell执行文件的时候是执行文件所在的路径,不是shell所在的文件路径。

解决

所以正确的姿势是这个样子

import sys
sys.path.append("..")

先把相对路径转换成绝对路径,然后将绝对路径加入系统变量中就行了。这样就可以在不用的场景下使用python命令,和灵活的使用其他文件下的函数了,不会报错。如果包含多级目录就继续加sys.path.append("../..")

以上这篇解决python调用自己文件函数/执行函数找不到包问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
python如何查看系统网络流量的信息
Sep 12 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
python动态视频下载器的实现方法
Sep 16 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
通过Python pyecharts输出保存图片代码实例
Nov 25 Python
Python利用folium实现地图可视化
May 23 Python
Python如何在循环内使用list.remove()
Jun 01 #Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 #Python
解决python中import文件夹下面py文件报错问题
Jun 01 #Python
浅谈Python中文件夹和python package包的区别
Jun 01 #Python
python 通过文件夹导入包的操作
Jun 01 #Python
Python matplotlib可视化实例解析
Jun 01 #Python
python代码如何注释
Jun 01 #Python
You might like
php上传图片存入数据库示例分享
2014/03/11 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
php微信开发之图片回复功能
2018/06/14 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
我的javascript 函数链之演变
2011/04/07 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python 中@property的用法详解
2020/01/15 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
html5录音功能实战示例
2019/03/25 HTML / CSS
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
文言文形式的学生求职信
2013/12/03 职场文书
酒店执行总经理岗位职责
2013/12/15 职场文书
消防安全员岗位职责
2014/03/10 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
公务员诚信承诺书
2014/05/26 职场文书
清明节主题班会
2015/08/14 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
公历12个月名称的由来
2022/04/12 杂记