如何在 PythonAnywhere 的环境变量中定位 Django 设置模块?
How do I target the Django setting module in an environmental variable on PythonAnywhere?
我想 运行 我的独立脚本 csvImp.py
,它与我的 Django 站点 BilliClub 使用的数据库交互。我正在 运行 在我的虚拟环境 django2
.
中从项目根目录 (~/BilliClub
) 安装脚本
我已按照说明进行操作 here,但 DJANGO_SETTINGS_MODULE
而不是密钥。让我感到困惑的部分是分配给环境变量的值。我尝试过的每次迭代都会在 运行ning 之后产生类似 ModuleNotFoundError: No module named 'BilliClub'
的错误
(django2) 04:02 ~/BilliClub $ python ./pigs/csvImp.py
.
每次我尝试更改 .env
中的变量时,我都会重新加载 shell,因此 postactivate
脚本每次 运行s 并且我确定重新进入我的virtualenv。问题似乎是我无法弄清楚如何找到设置模块的路径。
.env
文件:
# /home/username/BilliClub/.env #
DJANGO_SETTINGS_MODULE="[what goes here???]"
我的 settings.py
的完整路径是 /home/username/BilliClub/BilliClub/settings.py
。
来自 运行ning tree
的删节结果:
(django2) 04:33 ~ $ tree
.
├── BilliClub
│ ├── BilliClub
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── manage.py
│ ├── media
│ ├── pigs
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── bc2019.csv
│ │ ├── csvImp.py
│ │ ├── models.py
│ │ ├── models.pyc
│ │ ├── tests.py
│ │ ├── urls.py
│ │ └── views.py
│ └── ...
看来您应该将 csvImp
设为自定义管理命令,然后
DJANGO_SETTINGS_MODULE
is "BilliClub.settings"
当你把你的工具函数写成 Django Management Command 时,你可以免费获得所有的 Django 配置,并且你的命令的根目录与 web 应用程序的根目录相同,并且它是 manage.py
所在的目录。
看看https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/
我想 运行 我的独立脚本 csvImp.py
,它与我的 Django 站点 BilliClub 使用的数据库交互。我正在 运行 在我的虚拟环境 django2
.
~/BilliClub
) 安装脚本
我已按照说明进行操作 here,但 DJANGO_SETTINGS_MODULE
而不是密钥。让我感到困惑的部分是分配给环境变量的值。我尝试过的每次迭代都会在 运行ning 之后产生类似 ModuleNotFoundError: No module named 'BilliClub'
的错误
(django2) 04:02 ~/BilliClub $ python ./pigs/csvImp.py
.
每次我尝试更改 .env
中的变量时,我都会重新加载 shell,因此 postactivate
脚本每次 运行s 并且我确定重新进入我的virtualenv。问题似乎是我无法弄清楚如何找到设置模块的路径。
.env
文件:
# /home/username/BilliClub/.env #
DJANGO_SETTINGS_MODULE="[what goes here???]"
我的 settings.py
的完整路径是 /home/username/BilliClub/BilliClub/settings.py
。
来自 运行ning tree
的删节结果:
(django2) 04:33 ~ $ tree
.
├── BilliClub
│ ├── BilliClub
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── manage.py
│ ├── media
│ ├── pigs
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── apps.py
│ │ ├── bc2019.csv
│ │ ├── csvImp.py
│ │ ├── models.py
│ │ ├── models.pyc
│ │ ├── tests.py
│ │ ├── urls.py
│ │ └── views.py
│ └── ...
看来您应该将 csvImp
设为自定义管理命令,然后
DJANGO_SETTINGS_MODULE
is "BilliClub.settings"
当你把你的工具函数写成 Django Management Command 时,你可以免费获得所有的 Django 配置,并且你的命令的根目录与 web 应用程序的根目录相同,并且它是 manage.py
所在的目录。
看看https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/