问题标签 [python-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 打包
首先:对不起,我知道有很多关于相对进口的问题,但我只是没有找到解决方案。如果可能的话,我想使用以下目录布局:
现在我的问题是:
包中的测试文件如何正确导入 myClass.py?
假设您将 myClass 作为 libs/myClass 或 include/myClass 中的子模块,您将如何从外部导入包?
到目前为止,我找不到一个优雅的解决方案。根据我对Guido 的决定的理解,应该可以这样做from ..src import myClass
,但这会出错:
ValueError: Attempted relative import in non-package
看起来它没有将 myClass 视为包。阅读文档:
需要 __init__.py 文件才能使 Python 将目录视为包含包;
似乎我遗漏了一些指定包脚本在哪里的东西,我应该使用 .pth 吗?
python - 从不同文件夹导入文件
我有以下文件夹结构。
我想从file.py
in导入一些函数some_file.py
。
我试过了
以及其他一些尝试,但到目前为止我无法正确导入。我怎样才能做到这一点?
python - python中的导入错误
在 file1.py 中:
在文件 2.py 中:
输出:
现在在文件 1 中,如果我包含 test2,我会收到以下错误:
有人可以解释为什么以及如何使其工作吗?
python - 确认 import * 和 from xxx import * 之间的区别
我很惊讶地发现
和
对全球成员产生了不同的影响。我想确认我的实验是正确的行为。
在第一个示例中,更改模块 foo 中的成员将反映在所有导入 foo 的代码中。但是,在后一种情况下更改该成员似乎只会影响导入它的文件。换句话说,使用后一种方法将为每个导入文件提供其自己的 foo 成员副本。
我想要的行为是从所有文件中访问 foo.x,能够从所有文件中更改它,并将该更改反映在所有文件中(如果你愿意,这是一个真正的全局)。
django - 奇怪的 django 管理错误
我刚刚在新机器上清理了我的项目,进入管理员时出现以下错误,这表明 forms.py 中存在一些语法错误(我相信管理员的表单)。以前有人见过这样的事情吗?:
如果 traceback 中提到的 forms.py 文件是我认为的那个,那么这就是导致问题的行:
python 2.4有什么问题吗?
python - Python/Django 正在导入错误的模块(当它应该是绝对的时候是相对的)
我正在使用 Django 1.2 pre-alpha 和 Python 2.4。是的,我知道,但我坚持下去。我们目前无法升级,无论如何我怀疑这就是答案。
我有两个模板标签库,foo
和bar
. 但是,foo
也是顶级包的名称,它恰好是以下包bar
:
标签库bar.py
包含这样的一行:
...你会期望它加载foo-1.2.3/foo/conf/settings.py
.
但不是:
TemplateSyntaxError:“bar”不是有效的标签库:无法从 django.templatetags.bar 加载模板库,没有名为 conf 的模块
不幸的是,Django 执行了一个小魔术并将所有模板标签库绑定到django.templatetags.*
. 因此,bar
被导入为django.templatetags.bar
,当它调用它时,from foo.conf import settings
它最终导入bar-4.5/somepackage/templatetags/foo.py
. 啊!
你有任何想法如何解决这个问题吗?
我在导入之前设置了一个断点,并且我已经确认foo-1.2.3
是在开头sys.path
,但是import
关键字仍然找到了错误的foo
。
如果有帮助,请注意我可以修改foo-1.2.3
包(因为它已在本地签入并且正在逐步淘汰),但我拒绝修改bar-4.5
包(因为它是开源包并且已在系统范围内安装)。
python - 何时使用 os.name、sys.platform 或 platform.system?
据我所知,Python 有 3 种方法可以找出正在运行的操作系统:
os.name
sys.platform
platform.system()
了解这些信息在条件导入或使用不同平台的功能(例如time.clock()
在 Windows 上与time.time()
在 UNIX 上)时通常很有用。
我的问题是,为什么有 3 种不同的方式来做到这一点?什么时候应该使用一种方式而不是另一种方式?哪种方式是“最好的”(最面向未来或最不可能意外排除您的程序实际可以运行的特定系统)?
它似乎sys.platform
比 更具体os.name
,允许您区分(与 just 相对)和win32
from (与 just 相对)。但如果是这样,那和之间的区别又如何呢?cygwin
nt
linux2
darwin
posix
sys.platform
platform.system()
例如,哪个更好,这个:
或这个?:
现在我会坚持sys.platform
,所以这个问题并不是特别紧急,但我会非常感谢对此的一些澄清。
python - 在 python 中安装 lxml 模块
在运行 python 脚本时,我收到了这个错误
现在我尝试安装 lxml
但它给了我以下错误
使用 libxslt 的构建配置
python - PyDev 和 Eclipse 未解决的导入问题
我对 PyDev 和 Python 非常陌生,尽管我已经大量使用 Eclipse for Java。我正在尝试解决一些 Dive Into Python 示例,这感觉就像一个非常琐碎的问题,只是变得非常烦人。我正在使用 Ubuntu Linux 10.04。
我希望能够使用位于目录中的文件 odbchelper.py/Desktop/Python_Tutorials/diveintopython/py
这是我在 PyDev/Eclipse 项目中处理的 example.py 文件:
这很好用,但是我希望我的代码的下一行是:
这每次都会导致未解决的导入错误。我已将__init__.py
文件添加到几乎所有可能的目录中,但没有任何帮助。我尝试将__init__.py
文件一次添加到项目位置和 odbchelper.py 文件之间的各个级别的目录中,并且我还尝试将__init__.py
文件同时添加到两者之间的所有目录中。两者都不起作用。
我想做的就是在其他目录的某个地方有一个项目,比如说/Desktop/MyStuff/Project
,我有example.py ...然后从example.py我想导入odbchelper.py/Desktop/Python_Tutorials/diveintopython/py/
我可以找到的每个留言板响应都只是说使用该sys.path.append()
功能将此目录添加到我的路径中,然后导入它......但这正是我在我的代码中所做的并且它不起作用。
我也尝试过Ctrl-1技巧来抑制错误消息,但程序仍然无法正常运行。我收到一个错误,ImportError: No module named odbchelper
. 所以显然没有添加路径,或者我添加__init__.py
文件的所有排列都错过了一些问题。
非常令人沮丧的是,这么简单的事情......从我机器上其他地方的某个文件中调用东西......需要这么多的努力。
python - Setup.py:在 CentOS 上用 Python2.6 安装 lxml
我在 CentOS 5.4 上安装了 Python 2.6.6,
我想使用 lxml 模块,但从源构建失败: