sys.path.insert 无法导入其他 python 个文件
sys.path.insert cannnot import other python files
标题说的是什么。我在路径 C:\Users\User\Desktop\all python file.0.8
:
中有以下文件结构
5.0.8\
tree one\
little main.py
sample_tree1.py
tree two\
sample_tree2.py
下面是里面的内容 little main.py
:
import sys
import sample_tree1
sys.path.insert(0, r'C:\Users\User\Desktop\all python file.0.8\tree two\sample_tree2.py')
import sample_tree2
我想导入 sample_tree2.py
,但是当我 运行 little main.py
:
时出现错误
Traceback (most recent call last):
File "<ipython-input-1-486a3fafa7f2>", line 1, in <module>
runfile('C:/Users/User/Desktop/all python file/5.0.8/tree one/little main.py', wdir='C:/Users/User/Desktop/all python file/5.0.8/tree one')
File "C:\Users\User\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "C:\Users\User\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/User/Desktop/all python file/5.0.8/tree one/little main.py", line 12, in <module>
import sample_tree2
ModuleNotFoundError: No module named 'sample_tree2'
所以发生了什么事?我按照 this post's top answer 从另一个路径分支导入文件,但它不起作用。
提前致谢
编辑:
我正在寻找一个解决方案:
1) 不需要改变当前工作目录
2) 不需要更改文件名
3)不需要更改python终端东西的配置
编辑2:
添加了一些文件和文件夹结构的屏幕截图,以及错误消息
sys.path.insert()
命令在系统路径中插入一个路径,不应包含文件名。
请使用您的结构尝试以下操作:
小 main.py:
import sys
import sample_tree1
sys.path.insert(0, r'/my/absolute/path/5.0.8/treetwo')
print(sys.path) # view the path and verify your insert
import sample_tree2
print(sample_tree2.tree2_func())
sample_tree2.py 在 treetwo
def tree2_func():
return 'called tree2'
输出:
['/my/absolute/path/5.0.8/treetwo', '... other paths']
called tree2
标题说的是什么。我在路径 C:\Users\User\Desktop\all python file.0.8
:
5.0.8\
tree one\
little main.py
sample_tree1.py
tree two\
sample_tree2.py
下面是里面的内容 little main.py
:
import sys
import sample_tree1
sys.path.insert(0, r'C:\Users\User\Desktop\all python file.0.8\tree two\sample_tree2.py')
import sample_tree2
我想导入 sample_tree2.py
,但是当我 运行 little main.py
:
Traceback (most recent call last):
File "<ipython-input-1-486a3fafa7f2>", line 1, in <module>
runfile('C:/Users/User/Desktop/all python file/5.0.8/tree one/little main.py', wdir='C:/Users/User/Desktop/all python file/5.0.8/tree one')
File "C:\Users\User\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
execfile(filename, namespace)
File "C:\Users\User\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/User/Desktop/all python file/5.0.8/tree one/little main.py", line 12, in <module>
import sample_tree2
ModuleNotFoundError: No module named 'sample_tree2'
所以发生了什么事?我按照 this post's top answer 从另一个路径分支导入文件,但它不起作用。
提前致谢
编辑:
我正在寻找一个解决方案:
1) 不需要改变当前工作目录
2) 不需要更改文件名
3)不需要更改python终端东西的配置
编辑2: 添加了一些文件和文件夹结构的屏幕截图,以及错误消息
sys.path.insert()
命令在系统路径中插入一个路径,不应包含文件名。
请使用您的结构尝试以下操作:
小 main.py:
import sys
import sample_tree1
sys.path.insert(0, r'/my/absolute/path/5.0.8/treetwo')
print(sys.path) # view the path and verify your insert
import sample_tree2
print(sample_tree2.tree2_func())
sample_tree2.py 在 treetwo
def tree2_func():
return 'called tree2'
输出:
['/my/absolute/path/5.0.8/treetwo', '... other paths']
called tree2