当前位置: 首页 > 面试题库 >

从本地目录导入python包到解释器

穆才良
2023-03-14
问题内容

我正在开发/测试本地目录中的软件包。我想将其导入解释器(v2.5),但是sys.path不包括当前目录。现在我输入sys.path.insert(0,'.')。有没有更好的办法?

也,

from . import mypackage

失败并显示此错误:

ValueError: Attempted relative import in non-package

问题答案:

您只能在从作为包的一部分导入的模块中使用相对导入-您的脚本或交互式解释器不是,因此,当然from . import(这意味着“从与我导入的包相同的包中导入”)不会不行 import mypackage将被罚款,一旦你确保父目录的mypackagesys.path(你如何设法让你的当前目录
sys.path我不知道-你有在site.py一些奇怪的事情,或…)

sys.path实际上,将当前目录放回该目录中没有比将其放入目录中更好的方法了。



 类似资料:
  • 问题内容: 我有以下内容: 我正在尝试从父目录导入。在这种情况下,我尝试从测试文件夹中运行“ UnitTest1.py”,并从其上方的目录(文件“ ModuleFile.py”)导入。 我知道已经有很多答案。 SO问题1,SO问题2,其他所有SO问题。我只是找不到“使用../”作为相对导入而不是显式路径。 我知道从Python 2.5开始,根据提到使用的文档,它们支持“相对导入”,但是我专门尝试这

  • 问题内容: 如何导入驻留在父目录中的模块(python文件)? 这两个目录中都有文件,但是我仍然无法从父目录导入文件? 在此文件夹布局中,脚本B尝试导入脚本A: 脚本B中的以下代码不起作用: 问题答案: 您无需在Python中导入脚本,而可以导入模块。一些python模块也是可以直接运行的脚本(它们在模块级别上做了一些有用的工作)。 通常,最好使用绝对进口,而不是相对进口。 在: 如果您想作为脚本

  • 我有一个名为的脚本,代码如下(我已经大大简化了事情): 但我不仅仅有一个名为的脚本。我有许多名为的脚本,按以下目录结构组织: 每个都有一个稍微不同的实现。我想对做的是通过导入每个脚本并对其运行一些测试来测试所有脚本。下面是一些代码(*'s表示伪代码) 我该怎么做?特别是,如何迭代导入脚本,例如,?

  • 我必须下载一个git python回购和安装,因为pypi版本不更新。 通常我会这样做: 现在,我已将回购克隆到以下文件夹中: /opt/mypackage 那么,我如何运行来安装下面的不是使用pypi版本而是本地版本呢? 有可用的pip标志,我不知道如何实现:

  • 问题内容: 我知道应该避免本地进口,但是在这种情况下需要特殊情况。这是一个私有存储库,由于服务器上缺少私有密钥,因此与绝对URL一起使用时,heroku buildpack在该阶段失败。 现在我得到这个错误。 所有导入路径都已更改为本地版本,那么还有什么可以使软件包成为“非本地”文件呢?我该如何解决? 问题答案: 我修好了它。问题是root软件包在中。一旦我将软件包移到错误处,错误就消失了(因此,

  • 我有以下目录结构: b、 py需要在a.py中导入一个类。因此,我可以在导入a之前将以下行添加到b.py。 sys.path.append(os.path.dirname(sys.argv[0])) 这是可行的,我可以从任何目录调用b.py,它也可以导入a。但是,当我在另一个目录中编写脚本以使用execfile()调用此文件时,这将失败。 我尝试了相对导入,但得到了“在非包错误中尝试相对导入” 我