在Python中避免相对导入和sys.path - python

当前,我有一个Python项目正在处理这样的目录结构:

tests/
    corpus/
        __init__.py
        tests.py
monkey/
    corpus/
        corpus.py
setup.py

我想将tests.py(在测试/语料库中)导入corpus.py(在猴子/语料库中)。

我已经看到许多涉及使用相对导入和sys.path的解决方案,但是我也看到人们直接使用(例如)导入

import monkey.corpus

如何设置代码,以便能够像这样导入根文件夹中的任何内容?我已经看到了一些想法,可以通过配置setup.py来实现。这是真的?

谢谢你抱歉,我用另一个相对类似导入的问题来稀释这个奇妙的网站。 🙂

真诚的
linux用户

参考方案

经过一些研究,我发现我需要在内部语料库目录中添加一个空的__init__.py,并在我的.bashrc中添加一行以将其附加到PYTHONPATH。

这就是我的.bashrc现在的样子:

...
export PYTHONPATH=$PYTHONPATH:/home/username/monkey/corpus
...

刚开始,必须附加.bashrc来访问库似乎很不寻常,但是据我所知,这是编辑环境的典型方法,因此是提供对Python库的访问的适当方法。

此博客文章是查找有关PYTHONPATH信息的重要资源:http://www.stereoplex.com/blog/understanding-imports-and-pythonpath

如何将Python安装目录打印到输出? - python

假设Python安装在该位置 C:\ TOOLS \ COMMON \ python \ python252我想在程序输出中打印此位置。请让我知道我可以这样做。 python大神给出的解决方案 您可以使用import sys, os os.path.dirname(sys.executable) 但请记住,与在Unix系统中相比,程序的“安装”通常是沿着以下…

os.path.getsize(path)或os.stat - python

os.path.getsize(path)和os.stat有什么区别?哪一个最适合在python 3中使用?以及何时使用它们?为什么我们有两个相同的解决方案?我找到了this答案,但我不明白这句话的意思: 由此看来,似乎很清楚,没有理由期望这两种方法的行为有所不同(也许是由于代码中循环结构的不同)特别是为什么我们有两种方法,有什么不同? 参考方案 stat是…

比较python中的两个路径 - python

考虑:path1 = "c:/fold1/fold2" list_of_paths = ["c:\\fold1\\fold2","c:\\temp\\temp123"] if path1 in list_of_paths: print "found" 我希望if语句返回True,…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

显示文件和大小缓慢命令 - python

此命令获取所有文件和大小find . -type f | xargs -I x du -s x > /tmp/asd 比这个python脚本慢1000倍import os for dirpath, dirnames, filenames in os.walk("."): for f in filenames: print(f) fp…