Python:导入文件夹的符号链接

Python:导入文件夹的符号链接,python,import,symlink,Python,Import,Symlink,我有一个文件夹a,其中包含一些Python文件和_init _u;.py 如果我将整个文件夹A复制到另一个文件夹B中,并在其中创建一个带有“import A”的文件,它就会工作。但是现在我删除了这个文件夹,并在一个符号链接中移动到原始文件夹。现在它不工作了,说“没有名为foo的模块”。 有人知道如何使用符号链接进行导入吗?Python不会检查您的文件是否为符号链接!您的问题可能在于重命名模块或在搜索路径中没有模块 如果ModuleA变为ModuleB,并且您尝试导入ModuleA,它将找不到它,

我有一个文件夹a,其中包含一些Python文件和_init _u;.py

如果我将整个文件夹A复制到另一个文件夹B中,并在其中创建一个带有“import A”的文件,它就会工作。但是现在我删除了这个文件夹,并在一个符号链接中移动到原始文件夹。现在它不工作了,说“没有名为foo的模块”。
有人知道如何使用符号链接进行导入吗?

Python不会检查您的文件是否为符号链接!您的问题可能在于重命名模块或在搜索路径中没有模块

如果ModuleA变为ModuleB,并且您尝试导入ModuleA,它将找不到它,因为它不存在

如果将ModuleA移动到另一个目录中,并生成一个具有另一个名称的符号链接(表示新目录),则此新目录必须是脚本和模块的公共父目录,或者符号链接目录必须位于搜索路径中

顺便说一句,不清楚你指的是模块还是软件包。包含
\uuuu init\uuuuu.py
文件的目录将成为所有文件的包,扩展名为
.py
(=模块)

例子 如果要从软件包SYMA导入模块,必须:

import SYMA.ModuleA
一个简单的例子:

import SYMA

将导入packagename,但不会将包中的模块导入命名空间

如果您的符号链接设置不正确,可能会发生这种行为。例如,如果使用相对文件路径创建它们。在这种情况下,将创建无错误的符号链接,但不会指向任何有意义的地方


如果这可能是导致错误的原因,请使用完整路径创建链接,并通过
ls
关闭链接并观察预期的目录内容来检查它们是否正确。

我认为这个答案可能只适用于在Windows下运行python时。似乎在我的mac上,python确实会检查文件是否是符号链接。()
import sys
sys.path.append('/path/to/your/package/root')
import SYMA.ModuleA
import SYMA