Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.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
Python Django BaseCommand在本地工作,但在Amazon AWS EB上不工作_Python_Django_Amazon Web Services_Amazon Elastic Beanstalk_Amazon Rds - Fatal编程技术网

Python Django BaseCommand在本地工作,但在Amazon AWS EB上不工作

Python Django BaseCommand在本地工作,但在Amazon AWS EB上不工作,python,django,amazon-web-services,amazon-elastic-beanstalk,amazon-rds,Python,Django,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Rds,因此,我正在使用Amazon AWS EB+RDS数据库部署Django网站 除了我有一个脚本负责以编程的方式填充数据库外,它工作得很好。 我成功地让它在本地运行,遵循这一非常好且简短的教程: 因此,在本地,它的工作方式与预期相同 当我在AmazonAWSEB上运行这个脚本时(使用cron或手动激活我的env),我的问题就出现了 我收到以下错误消息: ''' Traceback (most recent call last): File "/opt/python/run/venv/local

因此,我正在使用Amazon AWS EB+RDS数据库部署Django网站

除了我有一个脚本负责以编程的方式填充数据库外,它工作得很好。 我成功地让它在本地运行,遵循这一非常好且简短的教程: 因此,在本地,它的工作方式与预期相同

当我在AmazonAWSEB上运行这个脚本时(使用cron或手动激活我的env),我的问题就出现了

我收到以下错误消息:

'''
Traceback (most recent call last):
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/opt/python/run/venv/local/lib64/python3.4/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/python/current/app/BetzCenter/manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
    utility.execute()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/core/management/__init__.py", line 355, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/opt/python/bundle/18/app/BetzCenter/gamestream/management/commands/odds.py", line 444, in handle
    self.create_gamepages(self.all_fixtures())
  File "/opt/python/bundle/18/app/BetzCenter/gamestream/management/commands/odds.py", line 433, in create_gamepages
    for fixture in fixtures:
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/models/query.py", line 250, in __iter__
    self._fetch_all()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/models/query.py", line 1118, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/models/query.py", line 53, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 882, in execute_sql
    cursor = self.connection.cursor()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 254, in cursor
    return self._cursor()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 229, in _cursor
    self.ensure_connection()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/utils.py", line 94, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
    self.connect()
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/base/base.py", line 189, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/opt/python/run/venv/local/lib/python3.4/site-packages/django/db/backends/postgresql/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/opt/python/run/venv/local/lib64/python3.4/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
'''
“”
回溯(最近一次呼叫最后一次):
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第213行,在确保连接中
self.connect()
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第189行,在connect中
self.connection=self.get_new_connection(连接参数)
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/postgresql/base.py”,第176行,在get_new_connection中
连接=数据库。连接(**连接参数)
文件“/opt/python/run/venv/local/lib64/python3.4/site packages/psycopg2/_init__.py”,第130行,在connect中
连接=连接(dsn,连接工厂=连接工厂,**kwasync)
psycopg2.OperationalError:无法连接到服务器:连接被拒绝
服务器是否在主机“localhost”(127.0.0.1)上运行并接受
端口5432上的TCP/IP连接?
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“/opt/python/current/app/BetzCenter/manage.py”,第22行,在
从命令行(sys.argv)执行命令
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/core/management/_init__uuuuuu.py”,第363行,从命令行执行
utility.execute()
文件“/opt/python/run/venv/local/lib/python3.4/site-packages/django/core/management/_-init__.py”,执行中第355行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/opt/python/run/venv/local/lib/python3.4/site-packages/django/core/management/base.py”,第283行,从_argv开始运行
self.execute(*args,**cmd_选项)
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/core/management/base.py”,第330行,在execute中
输出=self.handle(*args,**选项)
文件“/opt/python/bundle/18/app/BetzCenter/gamestream/management/commands/locks.py”,第444行,在句柄中
self.create_游戏页面(self.all_fixture())
文件“/opt/python/bundle/18/app/BetzCenter/gamestream/management/commands/locks.py”,第433行,在创建游戏页面中
对于夹具中的夹具:
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/models/query.py”,第250行,在__
self._fetch_all()
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/models/query.py”,第1118行,全部
self.\u result\u cache=list(self.\u iterable\u class(self))
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/models/query.py”,第53行,在__
结果=编译器.execute\u sql(chunked\u fetch=self.chunked\u fetch)
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/models/sql/compiler.py”,第882行,在execute_sql中
cursor=self.connection.cursor()
光标中的文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第254行
返回自我。_cursor()
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第229行,在光标处
self.sure_连接()
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第213行,在确保连接中
self.connect()
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/utils.py”,第94行,在退出时__
6.重新播放(dj_exc_类型、dj_exc_值、回溯)
文件“/opt/python/run/venv/local/lib/python3.4/site-packages/django/utils/six.py”,第685行,在reraise中
通过_回溯(tb)提升值
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第213行,在确保连接中
self.connect()
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/base/base.py”,第189行,在connect中
self.connection=self.get_new_connection(连接参数)
文件“/opt/python/run/venv/local/lib/python3.4/site packages/django/db/backends/postgresql/base.py”,第176行,在get_new_connection中
连接=数据库。连接(**连接参数)
文件“/opt/python/run/venv/local/lib64/python3.4/site packages/psycopg2/_init__.py”,第130行,在connect中
连接=连接(dsn,连接工厂=连接工厂,**kwasync)
django.db.utils.OperationalError:无法连接到服务器:连接被拒绝
服务器是否在主机“localhost”(127.0.0.1)上运行并接受
端口5432上的TCP/IP连接?
'''
如果我手动将psycopg2代码与sql语句一起使用,脚本运行良好(在AWS EB上),但无法使用Django设置,我认为我在链接的教程之后添加了Django设置

不过,我真的希望能够对这个脚本使用django命令

关于如何调试这个有什么想法吗? 谷歌搜索目前对我帮助不大

更新-->我非常确定我的“普通”python脚本没有指向正确的数据库。事实上,我现在已经尝试打印它指向的数据库,我是对的。它没有指向我的AmazonRDS数据库(但查找本地数据库),而我的Django应用程序的其余部分则指向。我已经尝试了在stackoverflow上到处找到的解决方案。 我应该从哪里开始调试它?;)

谢谢!
维托里奥

所以几个月后我又回到这个话题,并设法对它进行了分类。 我是一个变数的问题。 经过一些研究和尝试一些解决方案后,这对我来说是有效的:

我在crontab文件中添加了这个命令,在激活虚拟en后调用该命令
&& source /opt/python/current/env
0,30 * * * * source /opt/python/run/venv/bin/activate && source /opt/python/current/env && python /opt/python/current/app/my_site/manage.py my_command