问题标签 [relative-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 Python 3 从另一个目录中的模块导入本地函数,并在 Jupyter Notebook 中进行相对导入
我有一个类似于以下的目录结构
在工作时,notebook.jpynb
如果我尝试使用相对导入来访问以下function()
函数module.py
:
我收到以下错误:
有没有办法使用相对进口来让它工作?
请注意,笔记本服务器是在meta_project
目录级别实例化的,因此它应该可以访问这些文件中的信息。
另请注意,至少按照最初的预期project1
,它没有被认为是一个模块,因此没有__init__.py
文件,它只是作为一个文件系统目录。如果问题的解决方案需要将其视为一个模块并包含一个__init__.py
文件(甚至是空白文件),那很好,但这样做不足以解决问题。
我在机器之间共享这个目录,相对导入允许我在任何地方使用相同的代码,并且我经常使用笔记本进行快速原型设计,因此涉及将绝对路径组合在一起的建议不太可能有帮助。
编辑:这与Python 3 中的相对导入不同,后者通常讨论 Python 3 中的相对导入,尤其是从包目录中运行脚本。这与在 jupyter notebook 中工作有关,试图在另一个目录中调用本地模块中的函数,该目录具有不同的一般和特定方面。
python - Python 项目结构和相关导入
我是 Python 的新手,我搜索了很多谷歌并阅读了一些关于相对导入等的文章。尽管我无法让它工作。请考虑我的以下项目结构:
而我想要实现的是从a.py
脚本内部的文件中导入一个类b.py
。一般来说,脚本b.py
应该与导入的a.py
. 我读过一些关于使用__init__.py
文件的文章,我应该把它们放在哪里?我应该PYTHONPATH
以某种方式改变,如何?最后一个问题,项目结构好吗?感谢您的时间和帮助!
python - 如何在不执行 python -m 的情况下使用相对导入?
我有一个这样的文件夹
我想使用亲戚进口test1
,test2
喜欢这样
当我开发test1
或者test2
我希望这些导入在我处于空闲状态时工作,也就是说,如果我F5
在工作时按下test2
每个工作都很好,因为例如我不想这样做python -m test_mod.sub_mod.test2
。
我已经检查了这个 python-relative-imports-for-the-billionth-time
看着那个,我试过这个:
但这没有用,它给出了这个错误:
python - 脚本的绝对和相对导入
我知道这个问题经常被问到,但我有一个关于导入的非常具体的问题。我有一个文件结构如下:
基本上,这里发生的是我的程序 ( main.py
) 创建了几个较小的脚本 (in temp/
),然后尝试运行它们。但是,这些脚本中的每一个都引用lib/instructions.py
和device/android.py
. 此代码运行这些文件:
我__init__.py
在每个目录中都有文件,但是因为这些文件是脚本,所以我不能使用相对导入。我将如何导入这些库?
python - 在单独的脚本中导入 python 模块
类似的问题已经问过很多次了,但我还没有找到解决方案。我有 Python 项目,其结构如下(简化版)。问题
是导入module1
. myscript.py
到目前为止,我已经在 .topsys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '..'))
上进行了编写myscript.py
,但这不是很优雅,我想知道我的项目的最佳结构是什么,可以轻松地将模块从项目导入到位于单独文件夹中的脚本中。
python - 从父目录导入测试子目录而不使用打包,Python 2.7
TL;博士
对于像这样的固定且不可更改的非包目录结构:
test_mod.py
什么是启用从导入的非打包方式mod.py
?
在这种情况下,我仅限于使用 Python 2.7。
我想为mod.py
. 我想创建一个新目录test
,在它旁边mod.py
和里面有一个测试文件test/test_mod.py
,应该从中导入函数mod.py
并测试它们。
由于依赖于基于包的命名的相对导入的众所周知的限制,您不能以直接的方式执行此操作。然而,关于该主题的所有建议都建议将脚本构建为一个包,然后使用相对导入,这对于我的用例来说是不可能的。
就我而言,它不允许mod.py
作为一个包构建,我不能要求用户mod.py
安装它。相反,他们可以自由地从版本控制中检出文件,然后按照他们的意愿开始使用它,我无法改变这种情况。
鉴于此,有什么方法可以提供简单、直接的test
目录?
注意:不仅仅是一个测试文件mod.py
,而是一个实际的测试目录,因为它会附带测试数据等其他资产,并且子目录组织至关重要。
如果这是重复的,我深表歉意,但是在发布之前我在研究中看到的这个问题的十几个排列中,我还没有看到一个解决如何做到这一点的问题。他们都说要使用包装,这对我来说是不允许的选择。
python - Python 相对导入脚本向上两级
在过去的一个小时里,我一直在为我的包裹中的导入而苦苦挣扎。
我有一个像这样的目录结构:
我想访问中的代码script_b.py
以及来自的script_c.py
代码script_a.py
。我怎样才能做到这一点?
import script_b
如果我在里面放一个简单的script_a.py
,当我跑的时候
我遇到了一个
对于访问script_c.py
,我不知道。我无法找到有关访问上两级文件的任何信息,但我知道我可以导入上一级文件
我怎样才能访问这两个文件script_a.py
?
python - Python 相对/绝对导入(再次)
这个话题已经被讨论过好几次了,但我仍然无法让我的包工作。情况如下:我有一个包,其中一个logging
模块负责设置日志记录。很明显,与标准库中mypackage.logging
的 Python 冲突。logging
目录结构:
我的包.__init__
mypackage.logging
脚本.py
最后,这是我收到的错误消息:
最后的话,我注意到如果在标准库之前mypackage.__init.py__
导入,它可以工作。我不想这样做,因为它违反了 Python PEP8 建议:mypackage.logging
logging
进口应按以下顺序分组:
- 标准库导入
- 相关第三方进口
- 本地应用程序/库特定导入
任何帮助将不胜感激。
本。
PS我正在使用Python 3.5.1。
python - 从同级目录导入 Python 类
我的目录结构/VM/repo/project
是:
getSomething.py
项目.py
数据库.py
当我尝试跑步时
我得到错误
Traceback(最近一次调用最后一次):
文件“scripts/getSomething.py”,第 4 行,在 <module>
from ..classes import project
ValueError: Attempted relative import in non-package
我在这里想念什么?