Python中文
首页
教程
问答
标签
搜索
登录
注册
同包绝对导入模块
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我已经将导入问题简化为这个简单的基本情况。假设我有一个Python包:</p> <pre><code>mypkg/ __init__.py a.py b.py </code></pre> <p>a.py包含:</p> <pre><code>def echo(msg): return msg </code></pre> <p>b.py包含:</p> <pre><code>from mypkg import a # possibility 1, doesn't work #import a # possibility 2, works #from mypkg.a import echo # import also fails print(a.echo()) </code></pre> <p>在Python 2.7.6和Python 3.3.5上运行<code>python b.py</code>会产生<code>ImportError: No module named mypkg</code>。我也试过在两种情况下添加<code>from __future__ import absolute_import</code>,相同的问题。</p> <h3>预期:</h3> <p>我希望可能性1能正常工作。</p> <h3>我为什么要这样做:</h3> <p>可能性2不太可取。假设,标准库可以引入一个名为<code>a</code>的包(在本例中不太可能,但您已经知道了)。当Python 2搜索<a href="https://docs.python.org/2/tutorial/modules.html#intra-package-references" rel="noreferrer">current package first</a>时,Python 3+包含绝对导入更改,以便首先检查标准库。 不管我的理由是什么,可能性1应该是有效的,不是吗?我发誓我以前做过几千次。</p> <p>注意:如果您在<code>mypkg</code>外部编写脚本,<code>from mypkg import a</code>可以正常工作。</p> <p>我的问题类似于<a href="https://stackoverflow.com/questions/11951941/python-absolute-import-for-module-in-the-same-directory#">python - absolute import for module in the same directory</a>,但作者暗示我所拥有的应该是有用的。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>from mypkg import a</code>是正确的形式。不要从Python包目录中运行脚本,它使用多个可能导致错误的名称使同一个模块可用。从包含<code>mypkg</code>的目录运行<code>python -m mypkg.b</code>。</p> <p>为了能够从任何目录运行,<code>mypkg</code>应该在pythonpath中。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
为什么我的神经网络模型的准确性不能在这个训练集上得到提高?
9 回答
为什么我的神经网络模型的权重变化不大?
7 回答
为什么我的神经网络的成本不断增加?
5 回答
为什么我的神经网络的输入pickle文件是19GB?
5 回答
为什么我的神经网络给属性错误?“非类型”对象没有属性“形状”
4 回答
为什么我的神经网络训练这么慢?
6 回答
为什么我的神经网络输出错误?
6 回答
为什么我的神经网络预测适用于MNIST手绘图像时是正确的,而适用于我自己的手绘图像时是不正确的?
4 回答
为什么我的神经网络验证精度比我的训练精度高,而且它们都是常数?
9 回答
为什么我的私人用户间聊天会显示在其他用户的聊天档案中?
3 回答
为什么我的积分的绝对误差估计值大于积分(使用scipy.integrate.nqad)?
5 回答
为什么我的积层回归器得分比它的组件差?
9 回答
为什么我的移动方法不起作用?
8 回答
为什么我的稀疏张量不能转换成张量
8 回答
为什么我的稀疏张量不能转换成张量?
9 回答
为什么我的程序“停止”了?
10 回答
为什么我的程序一直试图占用所有可用的CPU
3 回答
为什么我的程序不使用指定的代理
2 回答
为什么我的程序不工作(python帮助中的反向函数)?
1 回答
为什么我的程序不工作时,我使用多处理模块
6 回答