Pip冻结为本地包裹

时间:2017-04-24 12:48:14

标签: python git heroku pip

我有一个应用程序,hedgehog(https://github.com/qfq8wf77qwf8/hedgehog-test)我正在heroku上部署。这是文件结构:

hedgehog/
├── Procfile
├── README.md
├── hedgehog
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── app.db
│   ├── simple_page
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── models.py
│   │   └── models.pyc
│   ├── views.py
│   └── views.pyc
├── hedgehog.egg-info
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   ├── dependency_links.txt
│   └── top_level.txt
├── requirements.txt
└── setup.py

关于我的设置的一些注意事项:

  • 我有setup.py在本地安装刺猬。这允许我的所有文件通过import hedgehog
  • 访问此应用程序
  • 我有requirements.txt,因为这是Heroku建议的。
  • Setup.py基本上是一个工具,可以将此目录打包为要在本地安装的应用程序。

目前,我通过hedgehog在本地安装pip install -e .个应用 这很好用 - 我可以使用flask runheroku local运行我的应用。我也可以在heroku上部署这个应用程序。

我唯一的问题是,当我执行pip冻结时,我意识到我的本地应用程序显示为:

-e git+git@github.com:qfq8wf77qwf8/hedgehog-test.git@12a6c0a1bf00b76c6a18e15d295fde6b70814fbd#egg=hedgehog

如果我将此保留在requirements.txt中,我的部署将失败并显示以下消息:

remote:        Obtaining hedgehog from git+https://git.heroku.com/hedgehog.git@101439e90d0681e4952bd94ff7224d16e92d1b45#egg=hedgehog (from -r /tmp/build_fb9c8c5a426fa15f54b4e074abe57c25/requirements.txt (line 8))
remote:          Cloning https://git.heroku.com/hedgehog.git (to 101439e90d0681e4952bd94ff7224d16e92d1b45) to /app/.heroku/src/hedgehog
remote:        fatal: could not read Username for 'https://git.heroku.com': No such device or address
remote:        Command "git clone -q https://git.heroku.com/hedgehog.git /app/.heroku/src/hedgehog" failed with error code 128 in None
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed

我通过手动更改-e git+git@github.com:qfq8wf77qwf8/hedgehog-test.git@12a6c0a1bf00b76c6a18e15d295fde6b70814fbd#egg=hedgehog来解决此问题 到我的requirements.txt中的e .

有更好的方法吗?

0 个答案:

没有答案