2024-05-29 02:11:31 发布
网友
我试图卸载heroku上的一个模块:
heroku运行bin/python bin/pip卸载任何
Pip在/app树中显示该模块,然后声称已安装该模块,但再次运行同一命令将显示该模块安装在/app树中的同一位置。
有没有办法让皮普·因斯塔尔成功?
Heroku run实例化一个新的dyno并仅运行该dyno中指定的命令。Dynos是短暂的,这就是为什么pip卸载的结果不能持久的原因。
默认情况下,在部署之间缓存virtualenv。
要避免缓存包,可以运行:
heroku config:add BUILDPACK_URL=git@github.com:heroku/heroku-buildpack-python.git#purge
这样,在您推动一些更改之后,一切都将从头开始构建。要启用缓存,只需删除BUILDPACK_URL config变量。
现在要卸载特定程序包:
requirements.txt
感谢来自Heroku支持团队的Lincoln的澄清。
更新了2013-09-30:当前清除virtualenv的方法似乎在runtime.txtas stated on Github和Heroku's devcenter reference中指定了不同的python运行时版本。
runtime.txt
请注意,Heroku目前“只认可并支持Python 2.7.4和3.3.2的使用”,因此除非您的应用程序同时支持python2.7.4和3.3.2,否则您可能希望使用要切换到的运行时(当前可在http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2处获得,但在大多数情况下,在2.7.4和2.7.3之间切换应该不是问题)。
http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2
感谢@Jesse为您提供最新的answer以及让我意识到这个问题的评论。
在~2012年11月是最新的(此后我没有更新链接的buildpack,我的拉取请求被关闭,并且CLEAN_VIRTUALENV功能在某个时候被官方buildpack删除):
正如David所解释的,您不能pip卸载一个包,但可以清除并重新安装整个virtualenv。使用user-env-compile实验室功能和CLEAN_VIRTUALENV option清除virtualenv:
heroku labs:enable user-env-compile heroku config:add CLEAN_VIRTUALENV=true
目前这不会工作,因为有一个错误。您需要使用构建包的my fork,直到此get fixed upstream(拉取请求已关闭):
heroku config:add BUILDPACK_URL=https://github.com/blaze33/heroku-buildpack-python.git
现在推你的新代码,你会注意到整个virtualenv被重新安装。
安德烈的回答自2012年3月23日起不再有效。new style virtualenv提交将虚拟环境从/app移动到/app/.heroku/venv,但是清除分支没有更新以赶上,因此您最终发现virtual env不在PYTHONHOME中。
要避免每次按下后重新安装所有内容,请禁用该选项:
heroku labs:disable user-env-compile heroku config:remove CLEAN_VIRTUALENV BUILDPACK_URL
现在有一种更简单的方法来清除pip缓存。只需更改运行时环境,例如从“python-2.7.3”更改为“python-2.7.2”,反之亦然。
为此,请将名为runtime.txt的文件添加到存储库的根目录中,其中仅包含运行时字符串(如上图所示)。
为此,您需要打开Heroku labs用户env编译功能。见https://devcenter.heroku.com/articles/labs-user-env-compile
默认情况下,在部署之间缓存virtualenv。
要避免缓存包,可以运行:
这样,在您推动一些更改之后,一切都将从头开始构建。要启用缓存,只需删除BUILDPACK_URL config变量。
现在要卸载特定程序包:
requirements.txt
中删除相应的记录感谢来自Heroku支持团队的Lincoln的澄清。
更新了2013-09-30:当前清除virtualenv的方法似乎在
runtime.txt
as stated on Github和Heroku's devcenter reference中指定了不同的python运行时版本。请注意,Heroku目前“只认可并支持Python 2.7.4和3.3.2的使用”,因此除非您的应用程序同时支持python2.7.4和3.3.2,否则您可能希望使用要切换到的运行时(当前可在
http://envy-versions.s3.amazonaws.com/$PYTHON_VERSION.tar.bz2
处获得,但在大多数情况下,在2.7.4和2.7.3之间切换应该不是问题)。感谢@Jesse为您提供最新的answer以及让我意识到这个问题的评论。
在~2012年11月是最新的(此后我没有更新链接的buildpack,我的拉取请求被关闭,并且CLEAN_VIRTUALENV功能在某个时候被官方buildpack删除):
正如David所解释的,您不能pip卸载一个包,但可以清除并重新安装整个virtualenv。使用user-env-compile实验室功能和CLEAN_VIRTUALENV option清除virtualenv:
目前这不会工作,因为有一个错误。您需要使用构建包的my fork,直到此get fixed upstream(拉取请求已关闭):
现在推你的新代码,你会注意到整个virtualenv被重新安装。
安德烈的回答自2012年3月23日起不再有效。new style virtualenv提交将虚拟环境从/app移动到/app/.heroku/venv,但是清除分支没有更新以赶上,因此您最终发现virtual env不在PYTHONHOME中。
要避免每次按下后重新安装所有内容,请禁用该选项:
现在有一种更简单的方法来清除pip缓存。只需更改运行时环境,例如从“python-2.7.3”更改为“python-2.7.2”,反之亦然。
为此,请将名为runtime.txt的文件添加到存储库的根目录中,其中仅包含运行时字符串(如上图所示)。
为此,您需要打开Heroku labs用户env编译功能。见https://devcenter.heroku.com/articles/labs-user-env-compile
相关问题 更多 >
编程相关推荐