Python 从Mac上的卷执行时出现奇怪的导入行为

Python 从Mac上的卷执行时出现奇怪的导入行为,python,google-drive-shared-drive,Python,Google Drive Shared Drive,Google File Stream是一种将我的Google驱动器文件同步到Mac的工具。它在Finder中显示为外部卷。如果我有一个简单的python脚本,我可以正常执行它。但是,当我尝试导入卷上同一目录中存在的另一个模块时,会出现导入错误。例如: main.py: foo.py: 运行: 导入错误在此代码中消失。但是,如果删除打印(os.listdir()),则会返回导入错误。另外,os.listdir()返回一个意外的空列表。出于好奇,您是否在该目录中有一个\uuuuu init\uuuu

Google File Stream是一种将我的Google驱动器文件同步到Mac的工具。它在Finder中显示为外部卷。如果我有一个简单的python脚本,我可以正常执行它。但是,当我尝试导入卷上同一目录中存在的另一个模块时,会出现导入错误。例如:

main.py: foo.py: 运行:
导入错误在此代码中消失。但是,如果删除打印(os.listdir()),则会返回导入错误。另外,
os.listdir()
返回一个意外的空列表。

出于好奇,您是否在该目录中有一个
\uuuuu init\uuuuuuu.py
?否则python不会将该目录视为module@wiesion代码在我的主目录中运行良好,没有
\uuuu init\uuuu.py
,因此我认为这不是问题所在。我只有在卷内执行时才会收到错误。这也不能解释为什么只有在我导入一个标准库模块并从中调用一个函数时,代码才起作用。这听起来真的很奇怪-您是否尝试将特定文件夹(或整个同步文件夹)标记为“脱机可用”?可能是该文件仅在需要时下载/可用(这可能会触发
os.listdir()
)@wiesion很好的建议,但我恐怕已经尝试过了。使文件脱机可用并不能解决此问题。
import foo
print('hi')
def bar():
    return 1
> cd /Volumes/GoogleDrive/My\ Drive/Project
> ls
> main.py    foo.py
> python3 main.py

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import foo
ModuleNotFoundError: No module named 'foo'
import os            # importing standard modules always worked
print(os.listdir())  # import error returns if this line is removed!!!

import foo           # no error?!
print(foo.bar())     # prints 1