2017-08-29 26 views
0

我是编程/ Web开发新手,我想将Django目录推送到heroku。但每次我进入“混帐推Heroku的主人”到我的命令行的时间,我得到了同样的错误:我在Django目录中添加到我的requirements.txt中以将其推送到Heroku?

"Could not find a version that satisfies the requirement bonjour-py==0.3 (from -r /tmp/build_602f#############86ff270e/requirements.txt (line 3)) (from versions:)" 

我激活了虚拟环境,但无济于事。现在我假设问题可能是我的requirements.txt文件中没有包含任何内容(因为我认为这不会有任何理由)。不过,我想知道"bonjour-py==0.3"是什么以及如何解决这个问题。非常感谢您的帮助!

+0

您可以按照Kostas的回答,或者,如果真的只有'bonjour-py'丢失,请使用'pip install bonjour-py'将它安装在heroku上。 – cezar

回答

1

问题是,python2.7和python3.x是不同的版本。你需要相同版本的python - 服务器和本地。

待办事项:

  1. 采取终端的进入项目目录

    CD /你/路径/到/项目/

  2. 激活你的virtualenv

    源ENV/bin/activate

  3. 生成requirements.txt与PIP

    PIP冻结> requirements.txt

  4. 转到您的服务器,并使用相同的Python版本(https://virtualenv.pypa.io/en/stable/reference/#cmdoption-p

    的virtualenv --python = python2.7 ENV

  5. 新的virtualenv
  6. 激活的virtualenv上服务器

    源ENV /斌/激活

  7. 与PIP安装requirements.txt

    PIP安装-r requirements.txt

  8. Django的迁移

    蟒manage.py迁移

  9. 开始DJANGO用的runserver(测试)或连接webserver(nginx,uwsgi,gunicorn,...)

    python manage。py runserver

2

里面你的Python的虚拟环境,并在你的项目路径,只需键入:

pip freeze > requirements.txt

这将在requirements.txt文件中列出您使用的每个python软件包的确切版本。这就是Heroku如何知道它需要安装哪些软件包才能运行你的Django应用程序。

+1

另外请确保使用与heroku上相同的Python版本。至少不要混合使用Python 2和3.对于某些Python版本,许多库都不可用。 –

+0

我相信我现在使用的是错误版本的Python。我正在使用python-2.7.10,我猜测会导致冲突。我更新了python到python-3.6.2,但是,我的终端告诉我,我使用python-2.7.10。创建别名也不起作用。任何想法如何解决这个问题? – TheWill

相关问题