在Windows中将sys.path.append用于IDLE中的C:\ ...

时间:2018-09-27 10:31:38

标签: python windows python-3.7

如果我要导入保存在地址中的模块

  

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!
>>> 

1 个答案:

答案 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

运行后,我得到以下内容,没有错误。

enter image description here enter image description here

但是当我更仔细地在这里查看我的问题时,我注意到了“;”而不是驱动器名称后的“:”!同样,我将当前文件中的“:”更改为“;”。

import sys
sys.path.append('f;/')
import Hello

现在我遇到一个错误。

enter image description here

我还检查了输入目录的更多方式,这些方式我不会上传这些截图。大写的f(键入F)不会更改结果,因此与之无关。您可以继续使用\而不使用/,但是您不应该在最后输入\,所以在这里我们可以使用sys.path.append('f:'),它将正常工作。例如,如果路径为“ E:\ some folder \”,则应键入E:\some folder(不要在末尾键入\)。否则,您将收到以下错误。

SyntaxError: EOL while scanning string literal