python – PyCharm项目文件夹recs的ModuleNotFoundError错误

python – PyCharm项目文件夹recs的ModuleNotFoundError错误,第1张

概述我正在PyCharm开展一个项目.该项目具有以下结构: /projectRoot/ folder1/ somecode.py utils/ __init__.py myutils1.py 我想知道如何进行导入,以便在以交互方式在pyCharm控制台中运行代码时导入工作,以及在使用 python somecode.py 终端中的命令. 目前我这样 我正在PyCharm开展一个项目.该项目具有以下结构:

/projectRoot/   folder1/       somecode.py   utils/       __init__.py       myutils1.py

我想知道如何进行导入,以便在以交互方式在pyCharm控制台中运行代码时导入工作,以及在使用

python somecode.py

终端中的命令.

目前我这样做:

来自utils.myutils1.py导入myClass

但命令行我得到错误

file “somecode.py”,line 10,in
from utils.myutils1 import myClass ModuleNotFoundError: No module named ‘utils’

并在PyCharm上:

Traceback (most recent call last): file
“/home/ubuntu/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py”,
line 2881,in run_code
exec(code_obj,self.user_global_ns,self.user_ns) file “”,line 1,in
from utils.myutils1 import myClass ModuleNotFoundError: No module named ‘utils’

有关项目中模块的正确文件夹结构的任何建议,以及如何正确导入它们?

谢谢!

解决方法 为了解释答案,我重新创建了你拥有的项目结构

/projectRoot/   folder1/       somecode.py   utils/       __init__.py       myutils1.py

somecode.py

from utils.myutils1 import myclassif __name__ == "__main__":   print(myclass)

myutils1.py

my

从pycharm运行它们没有任何问题,但从终端运行它们将产生以下错误

file "somecode.py",line XX,in <module>    from utils.myutils1 import myclassModuleNotFoundError: No module named 'utils'

问题是Pycharm为你做了一些事情,因为你没有意识到为什么它不能在终端中工作.所以在告诉你需要什么之前,我会告诉你PyCharm自己做的两件事.

Python控制台

当您从Pycharm启动Python控制台时,会使用首选项执行一些代码.

如您所见,有两种选择

[X] Add content roots to PYTHONPATH[ ] Add source roots to PYTHONPATH

然后是一个起始脚本.所以它的作用是将项目的根添加到python的路径中.其中sys.path和PYTHONPATH环境变量主要由两种方式控制

如果我在Python控制台中运行以下代码

>>> import sys>>> sys.path['/Applications/PyCharm.app/Contents/helpers/pydev','/Applications/PyCharm.app/Contents/helpers/pydev','/Users/tarun.lalwani/.virtualenvs/folderstructure27/lib/python27.zip','/Users/tarun.lalwani/.virtualenvs/folderstructure27/lib/python2.7',....'/Users/tarun.lalwani/.virtualenvs/folderstructure27/lib/python2.7/site-packages','/Users/tarun.lalwani/Desktop/payu/projects/folderstructure27']

正如您所见,’/Users/tarun.lalwani/Desktop/payu/projects/folderstructure27’被添加到Python终端.

Python配置

当您使用Pycharm在代码中配置为RUN时,您有两个类似的选项.

@L_404_1@

我们可以将somecode.py的代码更改为下面的代码

import osprint (os.environ['PYTHONPATH'])import sysprint (sys.path)/Users/tarun.lalwani/Desktop/payu/projects/folderstructure27['/Users/tarun.lalwani/Desktop/payu/projects/folderstructure27/folder1','/Users/tarun.lalwani/Desktop/payu/projects/folderstructure27',....,'/Users/tarun.lalwani/.virtualenvs/folderstructure27/lib/python2.7/site-packages']

从输出中我们可以看到PYTHONPATH设置为当前项目文件夹.

从终端运行

现在让我们从终端运行somecode.py并进行修改.

$python somecode.pyTraceback (most recent call last):  file "somecode.py",line 2,in <module>    print (os.environ['PYTHONPATH'])  file "/Users/tarun.lalwani/.virtualenvs/folderstructure27/bin/../lib/python2.7/UserDict.py",line 40,in __getitem__    raise KeyError(key)KeyError: 'PYTHONPATH'

这表明我们在终端运行它时没有PYTHONPATH.让我们通过删除print(os.environ [‘PYTHONPATH’])代码再次运行它.您将获得以下输出

['/Users/tarun.lalwani/Desktop/payu/projects/folderstructure27/folder1',...'/Users/tarun.lalwani/.virtualenvs/folderstructure27/lib/python2.7/site-packages']Traceback (most recent call last):  file "somecode.py",line 7,in <module>    from utils.myutils1 import myclassimportError: No module named utils.myutils1

正如您所看到的,folder1被添加到sys.path中,因为它是包含somecode.py的文件夹,但尚未添加根文件夹.终端中的修复很简单,即在PYTHONPATH中设置根目录路径.

PYTHONPATH=`pwd`/.. python somcode.py

现在代码也可以在终端上运行.

但它们的工作方式与Python控制台不同.

重要的提示:
在远程解释器上使用PyCharm的Python控制台.

如果使用远程解释器选项运行python控制台选项pycharm将失败.这是因为它将附加本地PC的路径而不是远程服务器的路径.
为了解决这个问题,必须在本地PC目录和远程服务器路径之间添加映射.


总结

以上是内存溢出为你收集整理的python – PyCharm项目文件夹recs的ModuleNotFoundError错误全部内容,希望文章能够帮你解决python – PyCharm项目文件夹recs的ModuleNotFoundError错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1195039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存