我想在本地使用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/dev
和heroku local -e $VIRTUAL_ENV
并收到同样的错误:▸ EISDIR: EISDIR: illegal operation on a directory, read
答案 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
的一些选项,我想知道。