Python 导入位于项目根目录之上的模块
我正在使用以下结构: 假设我在lib目录中有一些通用函数Python 导入位于项目根目录之上的模块,python,django,Python,Django,我正在使用以下结构: 假设我在lib目录中有一些通用函数 foo.com < -- site root lib/ django_root/ < -- project root (checked into Github) 他给了我 ValueError: Attempted relative import beyond toplevel package 我可以看到两种干净的解决方案 要使其工作,您的库必须兼容(具有setup.py)文件。如果有,那
foo.com < -- site root
lib/
django_root/ < -- project root (checked into Github)
他给了我
ValueError: Attempted relative import beyond toplevel package
我可以看到两种干净的解决方案
setup.py
)文件。如果有,那么您只需使用带有标志的pip
安装它即可。只要做:
pip install -e /full/path/to/foo.com/lib/
这将以可编辑模式安装库,这意味着库不会安装到站点软件包中,而是在那里创建一个egg符号链接。这意味着您对库中文件所做的任何更改都将在您的环境中自动生效
manage.py
中的路径:
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)
# ...
将
lib
路径添加到PYTHONPATH
。
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)
# ...