首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku的Python没有找到redis(redistogo)来导入

Heroku的Python没有找到redis(redistogo)来导入
EN

Stack Overflow用户
提问于 2012-05-15 10:18:43
回答 2查看 2.3K关注 0票数 3

我已经在Heroku上添加了Redistogo插件,但是我不能在控制台模式下测试它。我已经按照文档做了这件事。

代码语言:javascript
复制
$ 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,url解译,但找不到redis。

有人帮我吗?我只需要Heroku的Python控制台模式!

使用本地Python和远程REDISTOGO,我没有任何问题!

更新:

来自文档的

部署到Heroku

若要使用Redis继续使用Heroku,请安装redistogo插件:

代码语言:javascript
复制
$ heroku addons:add redistogo

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

代码语言:javascript
复制
$ 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控制台工作!

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

EN

回答 2

Stack Overflow用户

发布于 2012-05-16 06:28:45

这些步骤应该在本地完成,承诺在git上执行,然后被推到heroku。当你这样做时:

代码语言:javascript
复制
heroku run python --app redis-to-go

它派生出应用程序的一个孤立实例。这不是持久的,只存在于那个dyno中。如果您想在一个孤立的实例中完全测试它,那么可以加载虚拟服务器:

代码语言:javascript
复制
pip install redis

但是,在下次运行应用程序时,这将是不可用的。相反,您应该让所有的文件签入,然后推送。即使简单地将redis添加到您的requirements.txt中,它也应该在孤立的dyno中工作。

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

代码语言:javascript
复制
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

你的蟒蛇的内部:

代码语言:javascript
复制
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')
票数 3
EN

Stack Overflow用户

发布于 2012-05-15 23:51:51

你们为什么要用遥控器做所有的事??做本地应用程序(创建store.py,requirements.txt),然后部署它!!当您部署(或推送)应用程序时,Heroku看到了requirements.txt,它添加了必要的库。这就是为什么它不能工作,因为redis库没有安装在您的heroku dyno上。

我不是python开发人员,但我这样做是没有问题的

https://github.com/ismaelga/python-redis-heroku

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10598641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档