python3导入当前目录模块里的函数出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3导入当前目录模块里的函数出错相关的知识,希望对你有一定的参考价值。

会出现错误信息 File "F:\Program Files\Anaconda3\lib\site-packages\vnpy\trader\gateway\ctpGateway\__init__.py", line 4, in <module> from ctpGateway import CtpGateway ModuleNotFoundError: No module named 'ctpGateway_init__.py代码如下:# encoding: UTF-8from vnpy.trader import vtConstantfrom ctpGateway import CtpGatewaygatewayClass = CtpGatewaygatewayName = 'CTP'gatewayDisplayName = 'CTP'gatewayType = vtConstant.GATEWAYTYPE_FUTURESgatewayQryEnabled = True应该是python版本的问题,不知道怎么修改,还请多多指教

你的意思我看懂了,你是打算从ctpGateway导入ctpGateway这个py文件,但是import ... from 不是这么用的
import ... from ...的意思是从x模块导入x对象
如果有子路径的话,应该是这样 from path.moudle import instance
参考技术A 看看别的文件能不能正常导入把第一行注释掉,看看第二行是否有同样问题

解决:python命令行运行出错 ImportError: No module named ...

一. 发现问题

今天在cmd命令行运行一个py文件,本来在pycharm中运行好好的文件,在命令行却报错了,直接提示我:ImportError: No module named ‘homeworks‘

技术分享图片

二. 什么原因

这是因为pycharm中,不光会导入环境变量中sys.path发现的模块,还会导入当前工作目录下的模块。在pycharm中,当前工作目录就是项目目录,能顺利调用相同项目中的模块。但通过命令行启动时,当前工作目录有可能不是项目目录,那么项目中的模块就不会被找到,因此运行时会报错:ImportError: No module named ...

三. 如何解决

方法一:

新建环境变量PYTHONPATH,将模块路径放到环境变量中作为全局变量(推荐使用)

由于我的main.py文件所在的路径为:D:python_workshoppython6homeworksxiaozhai_lesson17_homeworkTestCases

技术分享图片

 

 技术分享图片

 

方法二:

在代码中使用sys.path.append方法将main.py所在目录加入到搜素目录中,切记,这段代码必须放在from ... import ...前面

技术分享图片

注意:

选择上面两种方法任意一种都可以,如果修改完代码或者配置完环境变量后,在命令行还是报错,这时请退出cmd,重新进入,然后就可以顺利的运行了

 

 

参考文章

https://blog.csdn.net/qq_35304570/article/details/78151545

https://blog.csdn.net/hello__Jerry/article/details/79586034

 



以上是关于python3导入当前目录模块里的函数出错的主要内容,如果未能解决你的问题,请参考以下文章

python 怎么引入上上级目录的文件

Python找不到自定义的模块

python3.7 os模块

Python3-os模块-操作系统的各种接口

(11)-Python3之--os模块

python模块