Python中文
首页
教程
问答
标签
搜索
登录
注册
Python没有名为X absolute imports的模块
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>在我开始之前,我想说-我知道,有很多类似的问题,但是我找不到我问题的答案。我有这样一个dir结构:</p> <pre><code>. ├── project │ ├── A │ │ ├── __init__.py │ │ └── somelib.py │ ├── B │ ├── C │ │ └── C │ │ ├── foo.py │ │ └── __init__.py │ └── __init__.py └── run.sh </code></pre> <p><strong>运行.sh</strong>:</p> <p><code>python3 project/C/C/foo.py</code></p> <p><strong>食品</strong>:</p> <p><code>from project.A.somelib import somefunc</code></p> <hr/> <p>VS代码实际上获得了<code>foo.py</code>中的智能感知——它告诉我可以从<code>somelib</code>导入什么函数/变量。但是当我运行<code>run.sh</code>时,我得到了一条错误消息:</p> ^{pr2}$ <p>有没有一种方法可以在保留目录结构的同时解决这个问题?在</p> <hr/> <ul> <li>添加<code>project/__init__.py</code>没有任何改变</li> <li><code>foo.py</code>中的<code>sys.path</code>如下所示:</li> </ul> <pre><code>['/home/dabljues/projects/project/project/C/C', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/lib/python3.7/site-packages'] </code></pre> <h3>限制:</h3> <ul> <li>在运行脚本之前,我既不能修改文件中的<code>sys.path</code>,也不能修改<code>PYTHONPATH</code></li> <li>我不能安装任何东西</li> <li>我没有sudo权限</li> <li>我不能创建一个virtualenv,因为脚本应该是可下载和快速执行的</li> </ul>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>改变你的运行.sh作为模块运行<code>foo</code>的脚本。<code>python3 -m proj.C.C.foo</code></p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
10 回答
无法使用Django\u mssql\u后端迁移到外部hos
10 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
5 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
1 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
5 回答
无法使用Djangockedi验证CBV中的字段
5 回答
无法使用Djangocketditor上载图像(错误400)
2 回答
无法使用Djangocron进行函数调用
3 回答
无法使用Djangofiler djang上载文件
9 回答
无法使用Djangokronos
1 回答
无法使用Djangomssql provid
1 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答
无法使用Djangomssq迁移Django数据库
3 回答
无法使用Djangonox创建用户
1 回答
无法使用Djangopyodb从Django查询SQL Server
9 回答
无法使用Djangopython3ldap连接到ldap
6 回答
无法使用Djangoredis连接到redis
8 回答
无法使用Django中的FK创建新表
8 回答