Python中文
首页
教程
问答
标签
搜索
登录
注册
当脚本从不同文件夹(祖先)运行时,Python导入
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个具有固定结构的大型存储库,并通过一些文件夹和python脚本对其进行了扩展,从而为其整体添加了额外的功能。结构如下:</p> <ul> <li>顶级文件夹 <ul> <li>羽毛粉 <ul> <li>某物</li> <li>__初始值</li> </ul></li> <li>特点b <ul> <li>某物模组b.py</li> <li>__初始值</li> </ul></li> <li>应用</li> <li>__初始值</li> <li>app.py</li> </ul></li> </ul> <p>现在<code>someModuleA.py</code>和<code>someModuleB.py</code>可以通过<code>app.py</code>调用,但同时也可以直接调用,但是此调用必须来自toplevelfolder,以便正确解析文件中的相对路径,即通过<code>python ./featureA/someModuleA.py</code></p> <p>这一切都很好,但是现在我需要一些来自<code>someModuleB</code>中<code>someModuleA</code>的函数定义,因此我想导入这个模块。我尝试过绝对导入和相对导入,但都失败了,错误不同,绝对导入有错误</p> <pre><code>from toplevelfolder.featureA import someModuleA as A # ModuleNotFoundError: No module named 'toplevelfolder' </code></pre> <p>以及与</p> <pre><code>from toplevelfolder.featureA import someModuleA as A # ImportError: attempted relative import with no known parent package </code></pre> <p>现在我可以看到,当从<code>toplevelfolder</code>调用python时,相对导入将导致问题,因为<code>..</code>将表示后者的父目录,而不是<code>featureA</code>的父目录。但是,我无法获得第一条错误消息,特别是因为<code>toplevelfolder</code>不应该是一个模块,而应该是一个包</p> <p>如果可能的话,在不修改PYTHONPATH或sys.path或类似的东西的情况下,有没有其他我不知道的导入Python的方法</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>不要包含顶级目录。在功能B.someModuleB中:</p> <pre><code>from featureA.someModuleA import two </code></pre> <p><a href="https://github.com/Gerardwx/importexample" rel="nofollow noreferrer">Sample directory.</a></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
9 回答
无法使用Django\u mssql\u后端迁移到外部hos
5 回答
无法使用Django&Python3.4连接到MySql
8 回答
无法使用Django+nginx上载媒体文件
7 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
5 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
2 回答
无法使用Djangocketditor上载图像(错误400)
3 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
9 回答
无法使用Djangomssql provid
1 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
6 回答
无法使用Djangomssq迁移Django数据库
7 回答
无法使用Djangonox创建用户
4 回答
无法使用Djangopyodb从Django查询SQL Server
2 回答
无法使用Djangopython3ldap连接到ldap
7 回答
无法使用Djangoredis连接到redis
8 回答
无法使用Django中的FK创建新表
7 回答