我有一个具有此目录结构和这些文件的 python 项目:
/home/project_root
|---__init__.py
|---setup
|---__init__.py
|---configs.py
|---test_code
|---__init__.py
|---tester.py
测试器脚本从 setup/configs.py 导入,引用为“setup.configs”。它在我的开发机器上运行良好。
这适用于开发(Linux)计算机。当我将它移动到另一台(Linux)计算机时,我将 PYTHONPATH 设置为
PYTHONPATH = "/home/project_root"
但是当我运行 tester.py 时,它找不到 configs 模块。当我运行交互式 Python 解释器时,sys.path 不包含 /home/project_root 目录。但是当我回显 $PYTHPATH 时,确实会出现 /home/project_root。
我在这里做错了什么?
(我不想依赖 .bashrc 文件来为目标机器设置 PYTHONPATH ——代码用于 Django 应用程序,最终将由 www-data 运行。而且,我知道 apache 配置Django 包含 PYTHONPATH 的规范,但我不想在这里使用它,因为我首先要确保代码在目标机器环境中通过其单元测试。)
CUIOUSER 和 CUIOUSER 这似乎是用户 ID 和权限问题。- 当由普通用户的命令启动时,解释器可以按预期导入模块。- 当由 sudo 启动时(我在这里运行 Ubuntu),解释器无法按预期导入模块。- 我一直在用 sudo 调用测试脚本,因为这些文件归 www-data 所有(b/c 它们将由运行 apache 作为 Django 应用程序的一部分的用户调用)。- 将文件的所有权更改为普通用户的所有权后,测试脚本运行时不会出现导入错误(尽管会进入各种与用户 ID 相关的墙)。
很抱歉浪费您的时间。 这个问题应该关闭。