我知道栈上有很多类似的问题。但是常见的答案似乎并不适合我。
我有这样的文件结构
proj/
lib/
__init__.py
aa.py
bb.py
test/
__init__.py
aa_test.py
我发现如果我在test.py中包含代码
import lib.aa
要么
from lib import aa
我将能够引用lib/
目录中的模块。但这没有用。
所以我尝试添加到路径,它正确添加了它:
os.environ["PATH"] += ":%s" % os.path.abspath(os.path.join("..",""))
print os.environ["PATH"]
但是即使是现在,当我尝试上述导入语句时,我仍然收到错误消息
ImportError: No module named aa
要么
ImportError: Importing from non-package <Something...>
有什么明显的我想念的吗?
有没有办法检查我__init__.py
是否正确配置了文件,或查看我的程序包层次结构?
您需要更新sys.path
,这是python在其中查找模块的位置,而不是当前环境os.environ["PATH"]
中所指的系统路径。
例:
import os, sys
sys.path.insert(0, os.path.abspath(".."))
import aa
完成此操作后,您可以aa
像下面这样使用函数:aa.myfunc()
还有在一些更多的信息接受的答案为python:从目录导入模块
问题内容: 我在理解项目中python文件的使用场景或设计目标时遇到了困难。 假设我有“模型”目录(称为包),其中包含以下文件 我发现了两种使用方法: 我有需要使用一个共同的定义,,。我可以用作所有* model.py类的基础/通用定义吗?这意味着我必须导入。 或者,应当具有自己导入的solrmodel.py,mongomodel.py,samodel.py的定义,并且它允许像这样的类或函数的轻松
我有一个结构如下的项目: 我需要使用我在导入的文件中的第一个赋值中实现的函数,如下所示: 目前,我正在PyCharm中编程,IDE没有显示任何警告或问题。它甚至自动完成上面的代码。尽管如此,当我想运行<code>new_file时。py在命令行中抛出以下错误:
我已经安装了我的jdk文件。我还在用户变量和系统变量的高级设置中设置了我的路径。当我试图通过javac编译我的程序时filename.java命令提示符显示javac不被识别为内部或外部命令。我再次设定了我的道路,但问题仍然是一样的
我安装了Java JDK,然后在高级设置中设置了系统环境的路径,但在命令提示符中仍然无法识别。。 这是截图
问题内容: 我是Java的新手,正在尝试构建FX应用程序。我的功能之一是用其他字符串替换某些字符串。只要我定义目标文件的绝对路径,脚本就可以正常工作,但是当我使用相对路径时,脚本就会中断。 问题出在方法“ readAllBytes”中,该方法仅适用于完整路径。但是我需要相对路径,因为文件夹位置会有所不同。 目标文件在项目文件夹中。是否可以使用其他方法读取文件内容,而无需绝对路径? 非常感谢。以下是
问题内容: Popen的文档提到您不能指定相对于“更改工作目录” kwarg的可执行路径。 如果不是None,则子目录的当前目录将在执行之前更改为 。 请注意,搜索可执行文件时不会考虑此目录,因此您无法指定程序相对于的路径。 但是python在我的系统上的行为似乎与这种说法直接矛盾: 是否在使用相对路径来依赖于平台且不应依赖的东西?还是这是一个文档错误? (从评论这个问题产卵由glglgl这里