gpt4 book ai didi

python - Heroku 的 Python 找不到要导入的 redis(redistogo)

转载 作者:IT王子 更新时间:2023-10-29 06:01:42 24 4
gpt4 key购买 nike

我已经在 Heroku 上添加了 Redistogo 附加组件,但我无法在控制台模式下对其进行测试。我已经按照 documentation 做了这件事.

$ heroku run python --app redis-to-go
Running python attached to terminal... up, run.1
Python 2.7.2 (default, Oct 31 2011, 16:22:04)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> f=open('requirements.txt', 'w')
>>> f.write('redis==2.4.12'+'\n' )
>>> f.close()
>>>
>>> f=open('store.py', 'w')
>>> f.write('import os'+'\n' )
>>> f.write('import urlparse'+'\n' )
>>> f.write('import redis'+'\n' )
>>> f.write("url = urlparse.urlparse(os.environ.get('REDISTOGO_URL', 'redis://localhost'))"+'\n' )
>>> f.write('redis = redis.Redis(host=url.hostname, port=url.port, db=0, password=url.password)'+'\n' )
>>> f.close()
>>>
>>> from store import redis
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "store.py", line 3, in <module>
import redis
ImportError: No module named redis

Heroku 的 Python 找到:os,urlparse 但找不到 redis。
有没有人可以帮助我?我只需要 Heroku 的 Python 控制台模式!
使用本地 Python 和远程 REDISTOGO 我没有任何问题!

更新:

来自文档:

部署到 Heroku

要在 Heroku 上使用 Redis To Go,请安装 redistogo 附加组件:

$ heroku addons:add redistogo

从 Heroku 控制台测试它是否工作:

$ heroku run python
Python 2.7.2 (default, Oct 31 2011, 16:22:04)
>>> from store import redis
>>> redis.set('answer', 42)
True
>>> redis.get('answer')
'42'

它在 Heroku 控制台上不起作用!

请分享您在这方面的实践。

最佳答案

这些步骤应该在本地完成,提交到 git,然后推送到 heroku。当你这样做时:

heroku run python --app redis-to-go

它会启动您的应用程序的一个独立实例。这不是持久的,只存在于该测功机内部。如果你想在一个独立的实例中完全测试它,你可以加载 virtualenv 然后:

pip install redis

但是,下次运行您的应用程序时,这将不可用。相反,您应该检查所有文件然后推送。即使您只是将 redis 添加到您的 requirements.txt 中,它也应该可以在隔离的测功机中工作。

根据您的命令,这应该完全有效:

cat "redis==2.4.12" >> requirements.txt
git add requirements.txt
git commit -m 'adding redis'
git push heroku master
heroku addons:add redis-to-go
heroku run python --app redis-to-go

在你的 python 解释器中:

import os
import urlparse

import redis

url = urlparse.urlparse(os.environ.get('REDISTOGO_URL', 'redis://localhost'))

redis = redis.Redis(host=url.hostname, port=url.port, db=0, password=url.password)
redis.set('answer', 42)
redis.get('answer')

关于python - Heroku 的 Python 找不到要导入的 redis(redistogo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com