如果在其他应用程序中打开了自己的模块的文件夹,则无法导入我自己的模块

时间:2019-10-02 18:29:37

标签: python macos import module spyder

我正面临一个非常意外的错误,我想知道以前是否有人遇到过该错误。

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

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

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

此外,我感到奇怪的是,macOS的Finder不会发生这种情况,matplotlib或numpy等已安装的软件包也不会发生这种情况。

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

你们以前见过这种问题吗?

1 个答案:

答案 0 :(得分:1)

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

  1. 将模块目录保存在Google云端硬盘文件流中,并且
  2. 在PYTHONPATH中拥有该目录,并且
  3. 在例如一号指挥官和
  4. 能够在python中导入模块

您可以执行3.或4.,但不能执行3. AND 4.如果条件一不成立,则无论如何都可以导入模块。

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

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

我花了三天的时间试图找到错误的根源。我认为这可以帮助面临此特定问题的其他人。