提问人:Paul 提问时间:2/9/2023 最后编辑:Paul 更新时间:2/9/2023 访问量:171
仅当 .py 文件在桌面上时才找到 Python 模块
Python Module not found ONLY when .py file is on desktop
问:
仅对于保存在桌面上的 .py 文件,导入某些模块(如 pandas)失败,因为模块内发生的导入未找到模块。 当文件保存到其他位置时,不会发生此行为。
在 Mac 上工作,我制作了一个仅包含以下内容的 test.py 文件:import pandas as pd
当此 test.py 保存在我的桌面上时,它会生成以下错误:
Desktop % python3 test.py
Traceback (most recent call last):
File "/Users/XXX/Desktop/test.py", line 2, in <module>
import pandas as pd
File "/Users/XXX/Desktop/pandas/__init__.py", line 22, in <module>
from pandas.compat import (
File "/Users/XXX/Desktop/pandas/compat/__init__.py", line 15, in <module>
from pandas.compat.numpy import (
File "/Users/XXX/Desktop/pandas/compat/numpy/__init__.py", line 7, in <module>
from pandas.util.version import Version
File "/Users/XXX/Desktop/pandas/util/__init__.py", line 1, in <module>
from pandas.util._decorators import ( # noqa
File "/Users/XXX/Desktop/pandas/util/_decorators.py", line 14, in <module>
from pandas._libs.properties import cache_readonly # noqa
File "/Users/XXX/Desktop/pandas/_libs/__init__.py", line 13, in <module>
from pandas._libs.interval import Interval
ModuleNotFoundError: No module named 'pandas._libs.interval'
奇怪的是,如果我将 test.py 文件保存到高清上的任何其他位置,它就会完美地导入熊猫。 其他一些模块也会发生同样的事情。我尝试导入的模块似乎失败了,但在从模块内发生的导入失败。
在控制台中从桌面文件夹或任何其他文件夹运行会导致:
/Users/XXXX/.pyenv/shims/pythonwhich python3
python3 --version
结果为所有位置的 Python 3.10.9。
答:
3赞
Emanuel
2/9/2023
#1
您的桌面上有一个名为的目录。pandas
Python 尝试从此目录导入,而不是从名为 .pandas
您还可以看到,在异常中,查看跟踪、从代码移动到等。/Users/XXX/Desktop/test.py
/Users/XXX/Desktop/pandas/__init__.py
只需重命名桌面上的目录名称即可。 为了您的安全,不应使用与全局包相同的名称来命名本地目录。
评论
1赞
Paul
2/9/2023
你是对的!那不应该在那里,最近重建了我的 python 环境并且没有消除混乱。谢谢你指出我的愚蠢......
0赞
Emanuel
2/9/2023
不客气,如果您能标记为已解决,请不胜感激。
0赞
Emanuele Scarabattoli
2/9/2023
这里有很多伊曼纽尔(e)@Emanuel啊哈哈
2赞
Emanuele Scarabattoli
2/9/2023
#2
问题可能与桌面文件夹权限有关,请检查此项
https://support.apple.com/en-gb/guide/mac-help/mchld5a35146/mac
从文章
Choose Apple menu > System Settings, then click Privacy & Security in the sidebar. (You may need to scroll down.) Click Files and Folders. For each app in the list, turn the ability to access files and folders in specific locations on or off.
您应该能够选择“桌面”文件夹的权限,如本示例所示
评论