- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以有很多非常相似的问题,但似乎没有一个答案能满足我的要求。
本质上,我在命令行中使用绝对目录运行 python 脚本。
在这个文件本身中,我想导入一个模块/文件,我目前使用绝对路径来执行此操作 (sys.path.append(/....)
。
但我想使用相对于脚本本身的相对路径。
我似乎能做的就是附加一个相对于我当前工作目录的路径。
我该怎么做?
最佳答案
以下两种替代可能性适用于 Python 版本 2 和 3。选择您喜欢的方式。涵盖所有用例。
main script: /some/path/foo/foo.py
module to import: /some/path/foo/bar/sub/dir/mymodule.py
加入foo.py
import sys, os
sys.path.append(os.path.join(sys.path[0],'bar','sub','dir'))
from mymodule import MyModule
main script: /some/path/work/foo/foo.py
module to import: /some/path/work/bar/mymodule.py
加入foo.py
import sys, os
sys.path.append(os.path.join(os.path.dirname(sys.path[0]),'bar'))
from mymodule import MyModule
sys.path[0]
在两个示例中都是 /some/path/foo
os.path.join('a','b','c')
比 'a/b/c'
os.path.dirname(mydir)
比 os.path.join(mydir,'..')
关于导入模块的文档:
关于python - 努力将相对路径附加到我的 sys.path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21259070/
我正在尝试为我的项目创建一些单元测试,经过大量挖掘之后,我发现了Effort,这个想法很棒,它模拟数据库而不是处理伪造的DBContext,顺便说一句,很难做到正确使用复杂的架构。 但是,我将用户的电
我正在尝试对某些响应 Entity Framework 数据库上下文的类进行单元测试。为了寻求帮助,我设法找到了一个名为 Effort 的库,它似乎有点旧,而且没有很好的文档记录,但它似乎可以工作,而
这两天,Auto-GPT 爆火 https://github.com/Torantulino/Auto-GPT 它是一款让最强语言模型GPT-4能够自主完成任务的模型,让整个AI圈疯
为什么会出现这个异常?这是错误吗? 我正在使用 EF 测试库 Effort 创建我的数据库的内存实例并遇到这个有趣的场景: 打开DbContext1 将项目添加到表(不保存) 关闭DbContext1
我是一名优秀的程序员,十分优秀!