如果它的文件夹在另一个应用程序中打开,则无法在 python 中导入我自己的模块

马修兰伯特

我正面临一个非常意外的错误,我想知道之前是否有其他人遇到过这种错误。

我使用的设置如下: macOS 10.14.6 with Python 3.7 我也在使用 ipython 和 spyder,但它与我的问题无关,因为它也发生在普通的 python shell 中。

我有一个名为 FLAP 的模块和几个子模块,它们都依赖于主 FLAP 模块。它们位于名为 git-repos 的同一目录中。我将 git-repos 添加到 spyder 中的 PYTHONPATH (或添加到 python shell 中的 sys.path )。如果我只有 spyder 的 ipython shell 或者只是打开了一个 python shell,我可以导入我自己的模块。

一旦我使用例如 Commander One 打开 git-repos 文件夹,python 就无法导入模块。我也尝试使用 Sourcetree git 客户端,这引起了同样的事情。如果我退出Commander One应用程序中的文件夹,则可以在重新启动python shell后再次导入它。

此外,我觉得奇怪的是它不会发生在 macOS 的 Finder 上,也不会发生在安装的包中,例如 matplotlib 或 numpy。

我认为值得一提的是,整个目录都位于挂载到 /Volumes 的 Google Drive Filestream 中。

大家有没有遇到过这样的问题?

马修兰伯特

事实证明,您无法在 macOS 中执行以下操作:

  1. 将您的模块目录放在 Google Drive File Stream 中,并且
  2. 在 PYTHONPATH 中拥有该目录并
  3. 在例如指挥官一号中打开相同的目录和
  4. 能够在python中导入模块

您可以执行 3. OR 4. 但不能执行 3. AND 4. 如果条件一不正确,那么无论如何您都可以导入模块。

这是 macOS Google Drive 软件中的一个错误。该文件夹在另一个应用程序(不是 Finder)中打开时似乎被锁定,因此 python shell 找不到它。

最后,我将文件夹从 Google Drive 移到了我的驱动器上,无论如何我都可以导入它。我启动了一个 crontab 记录,所以它会定期将我的代码备份到驱动器。

我花了三天时间试图找到错误的根源。我认为这可以帮助面临这个非常具体问题的其他人。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python动态导入-如何从变量中的模块名称中导入*?

无法在Python中导入我自己的模块

导入模块,该模块在Python中导入另一个模块

我无法使用PythonKit在Xcode 11中导入Python模块

python:在我自己的用户定义模块中,将numpy作为np从外部代码导入时丢失

无法在python中导入模块

无法从包中导入python模块

从apache uwsgi运行时无法在python中导入我自己的.py模块

从模块中导入函数的Python导入错误(ModuleNotFoundError),该模块从另一个模块中导入类

Python无法从包中导入模块

列出Python 3中导入模块中的导入模块

无法在python中导入Quandl模块

AWS Lambda python多个文件应用程序无法从另一个导入

从自己的文件中导入Python函数

Python无法在库中导入模块

无法在python中导入模块

在python3中导入模块

在Python 2.7中导入我自己的模块时的行为不一致

Python找不到在另一个模块中导入的模块

我应该如何在模块中导入另一个python文件

无法在python中导入任何模块

将我自己的文件命名为与模块相同的名称后无法导入 Python 模块

在python中导入自己的文件

无法在 PyCharm 中导入 numpy python 模块

无法在 Python 中导入我自己的依赖项

我无法在 python 3.x 中导入 docx 模块

当我在 python 中编写自己的模块时,导入模块的正确方法是什么?

为什么我不能在python中导入我自己的文件夹?

从我的模块中的另一个文件夹在 python 中导入模块函数