新手在这里
在这种情况下,我想从另一个目录中的文件导入类:
C:\Users\jose_\Desktop\my_ref\stack_class.py
,使用from
-import
语句。我在上述目录中有一个 init .py文件,但是在任何地方都找不到正确的sintax。
如何将C:\Users\jose_\Desktop\my_ref\stack_class.py
放入导入部分?
我尝试使用其他两种方式:
exec(open("file path on windows").read())
以及导入sys和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
答案 0 :(得分:0)
您是否确定将正斜杠“ \”切换为反斜杠“ /”?
答案 1 :(得分:0)
尝试使用:
sys.path.extend('file path here')
将文件夹路径添加到您的python路径中,那样python知道在哪里寻找stack_class模块-要么在导入前要么导航到该文件夹
还要确保在文件夹中,您的初始化文件名为__init__.py
您应该可以做到
from stack_class import Stack
答案 2 :(得分:0)
据我所知,您无法从Python中的文件路径导入。 您只能通过传递模块名称来导入:
import module.submodule
# then
module.submodule.sth()
或
from module.submodule import sth
# then
sth()
Python将在module/submodule.py
中所有目录中搜索module/submodule/__init_.py
和sys.path
。
因此,如果要从自己创建的另一个目录(不包含在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
语句)!