首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python相对导入“高于顶层”

Python相对导入“高于顶层”
EN

Stack Overflow用户
提问于 2018-05-31 04:11:57
回答 2查看 242关注 0票数 0

这是我的目录结构

代码语言:javascript
复制
src\
  dirCode\
    dirSubCode\
      test.py
  Django\
    DjangoApp\
      Home\
       views.py

在views.py中,我尝试从test.py导入一个类(让我们称之为Main)。test.py中的代码行简单地说

代码语言:javascript
复制
from dirCode.dirSubCode.test import Main

当我尝试运行服务器时,我得到了一个ModuleNotFoundError。我将os.sys.path和第二个入口点打印到'src\‘,而第一个条目只是'’。因为这不是我需要调用“外部”代码的唯一应用程序,所以我尽量避免硬编码

代码语言:javascript
复制
sys.path.insert(0,'path\to\src\dirCode\dirSubCode\')

如果这能奏效的话。我尝试过浏览文档、查看其他StackOverflow问题(Import module from subfolder)等,但我对如何做到这一点一无所知。我尝试进入src\Django\DjangoApp\Home目录,运行一个python控制台并简单地尝试导入类,但它给出了相同的错误。

我遇到的一个奇怪的开发是,当我尝试从Anaconda提示符运行它时(是的,我正在运行Windows),它不工作,但当我在PyCharm中运行该文件时,它工作。如果这有助于提供一些关于可能发生的事情的见解,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-31 04:21:51

要做到这一点,正确的方法是引入一个共享包,您可以将其安装到每个way应用程序的虚拟环境中。来自实际的发行版,或者通过使用

python setup.py开发人员

在共享包中的表单中,您实际上在venv中创建了一个符号链接,允许您只导入。

一个更现代、更简单的版本是

pip安装-e。

在图书馆里面。请参阅Python setup.py develop vs install

票数 0
EN

Stack Overflow用户

发布于 2018-05-31 10:47:27

我认为您需要设置PYTHONPATH变量,该变量用于设置模块的默认搜索路径。

https://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH

根据python文档,语法是这样的……

https://docs.python.org/3.6/using/windows.html#excursus-setting-environment-variables

要临时设置环境变量,请打开命令提示符,然后使用set命令:

C:>set PATH=C:\Program文件\Python 3.6;%PATH% C:>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib C:>python

Pycharm-在运行/调试配置中-在您选中它时设置它(这是默认设置)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50612695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档