我已经安装并一直在使用Anaconda Python发行版,我已经开始使用Anaconda(Conda)环境了.我可以使用标准conda install...命令将包中的包放入我的环境中,但是要使用外部的任何东西(例如Flask-WTF,flask-sqlalchemy和alembic),我需要pip install在活动环境中使用.但是,当我查看环境的内容时,无论是在目录中,还是使用conda list这些pip installed包都没有显示出来.
使用pip freeze并pip list列出我曾经安装的每个包.
有没有一种方法来跟踪什么是在我的每一个巨蟒env(能够对S pip和conda安装)?
是否可以将docker ENV变量设置为命令的结果?喜欢:
ENV MY_VAR whoami
Run Code Online (Sandbox Code Playgroud)
我希望MY_VAR获得值"root"或者任何whoami返回的值
在我的settings.yml文件中,我有几个配置变量,其中一些参考ENV []变量.
例如,我有ENV ['FOOVAR']等于WIDGET
我以为我可以在<%%>里面引用ENV变量,如下所示:
settings.yml中:
default:
cv1: Foo
cv2: <% ENV['FOOVAR'] %>
Run Code Online (Sandbox Code Playgroud)
在rails控制台中,如果我输入
> ENV['FOOVAR']
=> WIDGET
Run Code Online (Sandbox Code Playgroud)
但
> Settings.cv1
=> Foo (works okay)
> Settings.cv2
=>nil (doesn't work???)
Run Code Online (Sandbox Code Playgroud) 我的Python脚本beak包含以下shebang:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时$ ./beak,我得到了
env: python\r: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我之前从存储库中提取了此脚本.这可能是什么原因?
我正在尝试在Mac OS 10.7(Lion)上运行此脚本,我收到错误:
$ bbcolors
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我已成功在我的其他Mac上运行此脚本.这只是从Daring Fireball下载和修改的脚本.
我发现这个人有一个非常类似的问题,但接受的答案是文件系统在mount上有一个'noexe'选项.我很确定对我来说不是这样的,因为我刚刚将它放在/ usr/local/bin /中并且其他内容工作正常(它也不会从其他地方或其他用户运行,包括root) .
$ which bbcolors
/usr/local/bin/bbcolors
$ ls -l /usr/local/bin/bbcolors
-rwxr-xr-x@ 1 nick staff 9751 Mar 30 19:09 /usr/local/bin/bbcolors
Run Code Online (Sandbox Code Playgroud)
它是一个Perl脚本而不是编译的二进制文件,而不是那个重要的.这里有一些关于它的价值的额外信息:
$ cat /usr/local/bin/bbcolors |head -n 1
#!/usr/bin/env perl
$ which perl
/usr/bin/perl
$ env | grep PATH
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Run Code Online (Sandbox Code Playgroud) 所以我安装了三个PHP版本的Gentoo盒子(没关系原因):
/usr/bin/php - > /usr/lib64/php5.4/bin/php/usr/bin/php5.5 - > /usr/lib64/php5.5/bin/php/usr/bin/php5.6 - > /usr/lib64/php5.4/bin/php我想使用composer 安装Laravel框架:
$ composer create-project laravel/laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)
但是这会引发错误,因为Laravel要求PHP> 5.5.9并且默认php解释器为5.4.所以我发出另一个命令:
$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)
这让我更进了一步,但随后Laravel的一些安装后命令composer.json发挥作用,安装崩溃了.
这是因为composer.json命令看起来像这样:
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
Run Code Online (Sandbox Code Playgroud)
如您所见,再次使用"默认"解释器!
现在,正确的PHP文件从以下shebang开始:
#!/usr/bin/env php
Run Code Online (Sandbox Code Playgroud)
这是一个很好的功能,因为PHP解释器可以在不同系统的不同位置找到.不幸的是,在这种情况下,env命令返回它在$PATH环境变量中找到的第一个可执行文件的路径.
我怎么可能改变当前的会话环境或执行什么样的技巧,以便执行整个Laravel安装过程php命令/usr/bin/php5.6而不是/usr/bin/php?
我不想改变$PATH变量或修改文件一样composer,composer.json或者Laravel的CLI工具artisan.
编辑:还假设我想从常规用户帐户执行此操作(即没有root权限).
我正在尝试为我的应用启用调试,但看起来我没有任何反馈.
环境设置为本地(在.env文件中),如果我运行
php artisan env
Run Code Online (Sandbox Code Playgroud)
我明白了
Current application environment: local
Run Code Online (Sandbox Code Playgroud)
我本地环境的调试配置设置为 true
return [
'debug' => true,
Run Code Online (Sandbox Code Playgroud)
此外,如果我在我的主配置文件(配置文件夹中的app.php)中设置,debug = true我仍然有反馈说代码中有错误.
如果代码中有错误,我只有一个空页面(对于debug = false)
我错过了什么?
我有一个从中提取数据的数组.
festivals = ['bonnaroo', 'lollapalooza', 'coachella']
Run Code Online (Sandbox Code Playgroud)
由于我使用的是heroku,用环境变量替换它可能更好,但我不知道该怎么做.
使用JSON字符串作为环境变量的方式去?
我正在寻找一种很好的方法来计算我在运行代码或交互式python实例中的conda环境的名称.
用例是我使用miniconda安装的Python 2和Python 3内核运行Jupyter笔记本.默认环境是Py3.Py2有一个单独的环境.在笔记本文件中,我希望它尝试conda install foo.我现在正在使用subcommand这个,因为我找不到类似的程序性conda pip.main(['install','foo']).
问题是foo如果笔记本使用Py2内核运行,命令需要知道要安装在那里的Py2环境的名称.如果没有该信息,它将安装在默认的Py3环境中.我希望代码能够确定它所处的环境以及它自己的正确名称.
到目前为止,我得到的最佳解决方案是:
import sys
def get_env():
sp = sys.path[1].split("/")
if "envs" in sp:
return sp[sp.index("envs") + 1]
else:
return ""
Run Code Online (Sandbox Code Playgroud)
是否有更直接/适当的方法来实现这一目标?
是否可以在不知道要执行的程序路径的情况下指定shebang行?
也许不指定路径
#!node
Run Code Online (Sandbox Code Playgroud)
或指定几个选项
#!/usr/local/bin/node
#!/usr/bin/node
Run Code Online (Sandbox Code Playgroud)
跨平台解决方案的额外点(各种风格的linux,BSD,OSX等......)