当我尝试导入当前工作目录中的模块时引发ModuleNotFoundError

我在网络驱动器上安装了Python。我使用pushd命令进入同一网络驱动器上项目的文件夹。我在该文件夹中打开python。我尝试导入该文件夹中的模块。引发ModuleNotFoundError

C:\users\myprofile>pushd \\network\drive\my\directory\my-program
U:\my\directory\my-program>"\\network\drive\Python\installations\python-3.8.3rc1-embed-win32\python.exe"
Python 3.8.3rc1 (tags/v3.8.3rc1:802eb67,Apr 29 2020,21:21:45) [MSC v.1925 32 bit (Intel)] on win32
>>> import os
>>> import dict2obj
Traceback (most recent call last):
  File "<stdin>",line 1,in <module>
ModuleNotFoundError: No module named 'dict2obj'
>>> os.listdir()
['config.yml','dict2obj.py','files','main.py','start.bat','templates','__pycache__']

我使用os.listdir()来查看当前工作目录中的文件。

我不知道这个问题与放在网络驱动器上有什么关系。

更新:即使执行以下操作,问题仍然存在:

import os
os.chdir("\\\\network\\drive\\my\\directory\\my-program")

编辑:请勿将此标记为Python can't find module in the same folder的重复项。它不是。与该问题不同,OP在该文章中并未确认其工作目录正确。

编辑:sys.path中的所有内容:

\\network\drive\Python\installations\python-3.8.3rc1-embed-win32\python38.zip
\\network\drive\Python\modules\site-packages
\\network\drive\Python\modules\custom-modules
\\network\drive\Python\installations\python-3.8.3rc1-embed-win32
tianli12345 回答:当我尝试导入当前工作目录中的模块时引发ModuleNotFoundError

我的解决方案是删除此文件:

python39._pth

这允许Pip正常工作,也允许来自同一目录的import。 或者,您可以获取以下信息:

https://nuget.org/packages/python

点击“下载程序包”,就可以像提取Zip文件一样提取

。 ,
>>> os.listdir()
# can't see __init__.py file here!
['config.yml','dict2obj.py','files','main.py','start.bat','templates','__pycache__']
  • 模块文件夹需要导入__init__.py文件。

检查#https://docs.python.org/3/reference/import.html#regular-packages

,

如前所述,您的文件夹既没有__init__.py来指示它是一个模块,也没有__main__.py来指示起点,并且您也没有指定from . import dict2obj

还请分享您的sys.path,以便我们查看是否正在考虑当前文件夹。

本文链接:https://www.f2er.com/2352389.html

大家都在问