use*_*502 7 python relative-path
所以有很多非常相似的问题,但没有一个答案似乎满足我正在寻找的东西.
基本上我在命令行中使用绝对目录运行python脚本.
在这个文件本身,我想导入一个模块/文件,我目前使用绝对路径来做这个(sys.path.append(/....).
但是我想使用一个相对路径,相对于脚本本身.
我似乎能做的就是追加相对于我目前工作目录的路径.
我该怎么做呢?
oli*_*bre 27
以下两种备选方案适用于Python版本2和3.选择您喜欢的方式.涵盖所有用例.
main script: /some/path/foo/foo.py
module to import: /some/path/foo/bar/sub/dir/mymodule.py
Run Code Online (Sandbox Code Playgroud)
加入 foo.py
import sys, os
sys.path.append(os.path.join(sys.path[0],'bar','sub','dir'))
from mymodule import MyModule
Run Code Online (Sandbox Code Playgroud)
main script: /some/path/work/foo/foo.py
module to import: /some/path/work/bar/mymodule.py
Run Code Online (Sandbox Code Playgroud)
加入 foo.py
import sys, os
sys.path.append(os.path.join(os.path.dirname(sys.path[0]),'bar'))
from mymodule import MyModule
Run Code Online (Sandbox Code Playgroud)
sys.path[0]是/some/path/foo在这两个例子os.path.join('a','b','c') 比便携更便携 'a/b/c'os.path.dirname(mydir) 比便携更便携 os.path.join(mydir,'..')有关导入模块的文档:
| 归档时间: |
|
| 查看次数: |
22654 次 |
| 最近记录: |