如果我要导入保存在地址中的模块
C:\ Users \ someone \ AppData \ Local \ Programs \ Python \ Python37 \ MyFile \ MyModules
我该怎么办?
我尝试过
import sys
sys.path.append('C;/Users/someone/AppData/Local/Programs/Python/Python37/MyFiles/MyModules/')
import hello
但是随后显示以下错误
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
import hello
File "C:/Users/someone/AppData/Local/Programs/Python/Python37/MyFiles\hello.py", line 1
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
^
SyntaxError: invalid syntax
我知道我可以将文件hello.py移到站点包中,然后无需使用sys.path.append,它可以正常工作。但是我想学习如何使用sys.path.append并使用文件,即使它们位于其他文件夹或驱动器等上。也要确保hello.py内部没有问题,这是我移动文件时的结果在site-package文件夹中。
>>> import hello
>>> hello.world()
Hello, world!
>>>
答案 0 :(得分:1)
问题在于分号!我没有以前的文件,因为计算机上发生了很多变化。但是今晚我再次阅读这篇文章时,我尝试了以下方法。
开始之前,我正在Windows 10(64位)上使用Python 3.7.4。
我在目录“ F:\”中创建了一个名为“ Hello.py”的python文件,其中包含以下代码:
def Hello():
print("Hello, you imported me as a module from another folder successfully.")
# The end of the file.
然后,我在目录“ E:\ Python37 \ Python files \”中创建了另一个名为“ Python_20191217_importing.py”的python文件,其中包含以下代码:
import sys
sys.path.append('f:/')
import Hello
运行后,我得到以下内容,没有错误。
但是当我更仔细地在这里查看我的问题时,我注意到了“;”而不是驱动器名称后的“:”!同样,我将当前文件中的“:”更改为“;”。
import sys
sys.path.append('f;/')
import Hello
现在我遇到一个错误。
我还检查了输入目录的更多方式,这些方式我不会上传这些截图。大写的f(键入F)不会更改结果,因此与之无关。您可以继续使用\
而不使用/
,但是您不应该在最后输入\
,所以在这里我们可以使用sys.path.append('f:')
,它将正常工作。例如,如果路径为“ E:\ some folder \”,则应键入E:\some folder
(不要在末尾键入\
)。否则,您将收到以下错误。
SyntaxError: EOL while scanning string literal