导入语句的正确语法
Correct syntax for import statement
这里是新手
我想从另一个目录中的文件中导入一个 class,在这种情况下:
C:\Users\jose_\Desktop\my_ref\stack_class.py
,使用 from
- import
语句。我在所述目录中有一个 init.py 文件,但无法在任何地方找到正确的语法。
导入部分怎么放C:\Users\jose_\Desktop\my_ref\stack_class.py
?
我尝试过使用其他两种方式:
exec(open("file path on windows").read())
和导入系统和sys.path.insert
他们都工作,试图用 import 语句来完成。
from C:\Users\jose_\Desktop\my_ref\stack_class.py import Stack #Error here
foo = Stack()
print(type(foo))
错误
File "C:/Users/jose_/OneDrive/Mis_Documentos/Educacion/Linkedin/Ex_Files_Python_Data_Structures_Queues/Exercise_Files/Ch02/02_02/End/main2.py", line 4
from C:\Users\jose_\Desktop\my_ref\stack_class.py import Stack
^
SyntaxError: invalid syntax
您确定将正斜杠“\”换成反斜杠“/”了吗?
尝试使用:
sys.path.extend('file path here')
将文件夹路径添加到您的 python 路径,这样 python 知道在哪里寻找 stack_class 模块 - 或者在导入之前导航到文件夹
还要确保文件夹中的初始化文件名为 __init__.py
你应该可以做到
from stack_class import Stack
据我所知,您无法从 Python 中的文件路径导入。
您只能通过传递模块名称来导入:
import module.submodule
# then
module.submodule.sth()
或
from module.submodule import sth
# then
sth()
和Python将在sys.path
.
中的所有目录中搜索module/submodule.py
和module/submodule/__init_.py
所以如果你想从你自己创建的另一个目录中的文件导入(不包括在 sys.path
列表中)你必须将该目录附加到列表中以告诉 Python 从哪里导入找到那个模块。尝试 运行:
import sys
sys.path.append('C:\Users\jose_\Desktop\my_ref')
from stack_class import Stack
# then
foo = Stack()
print(type(foo))
编辑
如果你不想附加到sys.path
,你需要将你的模块移动到sys.path
中的目录之一,例如,当前目录.
是同样在 sys.path
中,否则 Python 将不知道模块在哪里(C:\
不在 sys.path
中)。
Python 从不从 sys.path
中未包含的目录导入(我的意思是通过 import
语句)!
这里是新手
我想从另一个目录中的文件中导入一个 class,在这种情况下:
C:\Users\jose_\Desktop\my_ref\stack_class.py
,使用 from
- import
语句。我在所述目录中有一个 init.py 文件,但无法在任何地方找到正确的语法。
导入部分怎么放C:\Users\jose_\Desktop\my_ref\stack_class.py
?
我尝试过使用其他两种方式:
exec(open("file path on windows").read())
和导入系统和sys.path.insert
他们都工作,试图用 import 语句来完成。
from C:\Users\jose_\Desktop\my_ref\stack_class.py import Stack #Error here
foo = Stack()
print(type(foo))
错误
File "C:/Users/jose_/OneDrive/Mis_Documentos/Educacion/Linkedin/Ex_Files_Python_Data_Structures_Queues/Exercise_Files/Ch02/02_02/End/main2.py", line 4
from C:\Users\jose_\Desktop\my_ref\stack_class.py import Stack
^
SyntaxError: invalid syntax
您确定将正斜杠“\”换成反斜杠“/”了吗?
尝试使用:
sys.path.extend('file path here')
将文件夹路径添加到您的 python 路径,这样 python 知道在哪里寻找 stack_class 模块 - 或者在导入之前导航到文件夹
还要确保文件夹中的初始化文件名为 __init__.py
你应该可以做到
from stack_class import Stack
据我所知,您无法从 Python 中的文件路径导入。 您只能通过传递模块名称来导入:
import module.submodule
# then
module.submodule.sth()
或
from module.submodule import sth
# then
sth()
和Python将在sys.path
.
module/submodule.py
和module/submodule/__init_.py
所以如果你想从你自己创建的另一个目录中的文件导入(不包括在 sys.path
列表中)你必须将该目录附加到列表中以告诉 Python 从哪里导入找到那个模块。尝试 运行:
import sys
sys.path.append('C:\Users\jose_\Desktop\my_ref')
from stack_class import Stack
# then
foo = Stack()
print(type(foo))
编辑
如果你不想附加到sys.path
,你需要将你的模块移动到sys.path
中的目录之一,例如,当前目录.
是同样在 sys.path
中,否则 Python 将不知道模块在哪里(C:\
不在 sys.path
中)。
Python 从不从 sys.path
中未包含的目录导入(我的意思是通过 import
语句)!