无法使用'heroku local'找到本地启动Django应用程序的.env文件

时间:2016-04-25 14:56:43

标签: django heroku virtualenv virtualenvwrapper

我想在本地使用Heroku运行我的Django应用程序,例如,使用'heroku local -e .env.test'(参见https://devcenter.heroku.com/articles/heroku-local)。我正在使用virtualenvwrapper所以我的envs(test,dev)不在我的Django项目服务器中,而是位于我的$ WORKON_HOME目录中。我不知道该命令的最后一部分要指定什么,因为我在$ WORKON_HOME中找不到.env文件。

我已尝试heroku local -e $WORKON_HOME/devheroku local -e $VIRTUAL_ENV并收到同样的错误:▸ EISDIR: EISDIR: illegal operation on a directory, read

3 个答案:

答案 0 :(得分:2)

对我来说,问题是我创建了一个名为.env的{​​{3}}目录,与Heroku的ENV系统冲突,后者使用相同的文件名。删除virtualenv并将其重新创建为.venv解决了我的问题:

deactivate
rm -rf .env
virtualenv .venv
source .venv/bin/activate

NB。您无需重命名.env目录,也无需手动编辑virtualenv配置;更好的是破坏和重建。

答案 1 :(得分:0)

我认为混淆来自你认为 <!-- 3. Add the container --> <div id="chart1" style="width: 1200px; height: 700px; margin: 0 auto"><body onload="InitHighChart()"></div> 的作用:Procfile(由Foreman https://ddollar.github.io/foreman/调用)用来设置环境变量,如:

.env

A=b C=d 你的virtualenv,你不应该跟踪。

在调用.env之前照常使用你的virtualenv并跟踪heroku local(可能requirements.txt获取Python版本,请参阅https://devcenter.heroku.com/articles/deploying-python

当你推动时,Heroku将自动使用virtualenv。

像往常一样,寻找最初的工作示例:https://github.com/heroku/heroku-django-template

答案 2 :(得分:0)

回答我自己的问题: 我能够通过从我的Django项目的基目录发出以下命令来解决我的问题。

echo "source /home/your_username/.virtualenvs/venv_name_here/bin/activate" >> .env

[该命令在此引用:How to create/make your app LOCAL with Heroku/Virtualenv/Django?]

重申,这是必要的,因为virtualenvwrapper不会自动创建.env's。因此,heroku local.env的明显需求需要手动创建环境文件。 @ ciro-santilli-巴拿马文件 - 六四事件 - 法轮功如果你知道更好的方法,比如heroku local的一些选项,我想知道。