加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 导入项目根目录之上的模块

发布时间:2020-12-20 13:34:38 所属栏目:Python 来源:网络整理
导读:我正在玩以下结构: http://timmyomahony.com/blog/2012/11/09/general-django-project-structure-or-folder-layout/ 假设我在lib目录中有一些泛型函数 foo.com -- site root lib/ django_root/ -- project root (checked into Github) 导入如: from ... li
我正在玩以下结构:

http://timmyomahony.com/blog/2012/11/09/general-django-project-structure-or-folder-layout/

假设我在lib目录中有一些泛型函数

foo.com     < -- site root
    lib/
    django_root/     < -- project root (checked into Github)

导入如:

from ... lib import my_lib

给我

ValueError: Attempted relative import beyond toplevel package

解决方法

我可以看到两个干净的解决方案

>为此,您的lib必须与Distutils兼容(具有setup.py)文件.如果是这样,那么你只需用带有e-标志的pip安装它.做就是了:

pip install -e /full/path/to/foo.com/lib/

这将以可编辑模式安装库,这意味着lib将不会安装到site-packages,但会在那里创建一个egg符号链接.这意味着您将对lib中的文件所做的任何更改将自动在您的环境中生效.
>我认为这不像第一个建议那么干净.只需将lib添加到Django的manage.py中的PATH:

import os,sys
root_path = os.path.abspath(os.path.join(__file__,'..','..'))
lib_path = os.path.join(root_path,'lib')
sys.path.insert(0,lib_path)
# ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读