Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonAnywhere:manage.py returns“;拒绝用户访问';用户'@';%';到数据库';用户'&引用;_Python_Django_Pythonanywhere_Manage.py - Fatal编程技术网

PythonAnywhere:manage.py returns“;拒绝用户访问';用户'@';%';到数据库';用户'&引用;

PythonAnywhere:manage.py returns“;拒绝用户访问';用户'@';%';到数据库';用户'&引用;,python,django,pythonanywhere,manage.py,Python,Django,Pythonanywhere,Manage.py,我有非常令人沮丧的问题与蟒蛇。每当我需要运行manage.py时,我都会做一些杂碎的工作来启动和运行我的站点,但现在我需要设置一个自动任务,这不再是一个选项 问题在于,在PythonAnywhere中,数据库必须在约定中命名为“user$database”。由于美元符号,每当我运行类似于python manage.py inspectdb的东西时,我都会收到标题中提到的错误,因为附加到美元符号的任何东西都被shell假定为环境变量 目前,我正在将生产环境变量存储在.env文件中,并将其设置到se

我有非常令人沮丧的问题与蟒蛇。每当我需要运行manage.py时,我都会做一些杂碎的工作来启动和运行我的站点,但现在我需要设置一个自动任务,这不再是一个选项

问题在于,在PythonAnywhere中,数据库必须在约定中命名为“user$database”。由于美元符号,每当我运行类似于
python manage.py inspectdb
的东西时,我都会收到标题中提到的错误,因为附加到美元符号的任何东西都被shell假定为环境变量

目前,我正在将生产环境变量存储在.env文件中,并将其设置到settings.py文件中。这在Django内部起作用,但在shell中运行manage.py命令时不起作用。我试图通过在manage.py文件中添加以下代码来解决此问题:

# update DATABASE_NAME to use \$ instead of $ else bash commands wont work
os.putenv(
    "DATABASE_NAME",
    str(os.getenv("DATABASE_NAME")).replace('$', '\\$')
)
然而,这并不能解决问题

我还尝试通过创建一个名为production_settings.py的文件来解决此问题,该文件包含我的数据库设置,并将数据库名称用单引号括在我的settings.py文件旁边,然后在我的settings.py文件中插入以下代码以设置我的数据库设置:

try:
    from production_settings import DATABASES
except ImportError:
    pass

同样,这没有起作用。我试着用PythonAnywhere寻找支持,但似乎没有,所以我来到这里希望这里的人知道如何解决这个问题。我现在落后几天了。。。我该怎么办?

听起来您需要在env文件中的值周围加上单引号