PYTHONPATH 中的路径不在 Django 路径中
Path in the PYTHONPATH not in django path
我正在编写基于 python 和 django 的基于网络的应用程序。我有一个包含 LIBS
目录的源代码文件夹,其中有一个名为 utils.py
的文件。当我想安装我的应用程序时,会在 ~/.profile
文件中添加一个新行,例如 export PYTHONPATH=$PYTHONPATH:/home/test/src/LIBS
(路径是根据安装路径添加的)。
当我 运行 解释器中的以下代码路径正常时:
import sys
sys.path
['', '/usr/lib/python2.7', '/home/test/src/LIBS', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
不幸的是,当我想加载我的应用程序的主页时,导入 utils
的行引发异常
我做错了什么?
您的 ~/.profile
仅将目录添加到当前 shell 环境中的 PYTHONPATH
。它不是全球可用的。当 django 加载时,它使用 wsgi.py
和另一个项目路径。
添加全局可用路径的最简单方法是添加 .pth 文件。它应该在您的 python dist-packages 目录中(取决于 OS):
$ sudo nano /usr/lib/python2.7/dist-packages/
/home/test/src/LIBS
并保存文件。
现在该应用程序将可用于您计算机上的所有 python 个实例。
如果你只想将此路径添加到特定的 django 项目,在 wsgi.py
添加:
import sys
sys.path.append("/home/test/src/LIBS")
我正在编写基于 python 和 django 的基于网络的应用程序。我有一个包含 LIBS
目录的源代码文件夹,其中有一个名为 utils.py
的文件。当我想安装我的应用程序时,会在 ~/.profile
文件中添加一个新行,例如 export PYTHONPATH=$PYTHONPATH:/home/test/src/LIBS
(路径是根据安装路径添加的)。
当我 运行 解释器中的以下代码路径正常时:
import sys
sys.path
['', '/usr/lib/python2.7', '/home/test/src/LIBS', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
不幸的是,当我想加载我的应用程序的主页时,导入 utils
的行引发异常
我做错了什么?
您的 ~/.profile
仅将目录添加到当前 shell 环境中的 PYTHONPATH
。它不是全球可用的。当 django 加载时,它使用 wsgi.py
和另一个项目路径。
添加全局可用路径的最简单方法是添加 .pth 文件。它应该在您的 python dist-packages 目录中(取决于 OS):
$ sudo nano /usr/lib/python2.7/dist-packages/
/home/test/src/LIBS
并保存文件。
现在该应用程序将可用于您计算机上的所有 python 个实例。
如果你只想将此路径添加到特定的 django 项目,在 wsgi.py
添加:
import sys
sys.path.append("/home/test/src/LIBS")