我想为服务设置别名,以便能够在不同的环境中使用不同的服务。所以,这里是services.yaml
.
.
.
register_request:
alias: %register_request_service%
main_register_request:
class: AppBundle\Services\Requests\RegisterRequest
null_register_request:
class: AppBundle\Services\Requests\NullRegisterRequest
.
.
.
Run Code Online (Sandbox Code Playgroud)
在我的开发环境中,它parameters.yml看起来像:
.
.
.
register_request_service: null_register_request
.
.
.
Run Code Online (Sandbox Code Playgroud)
但它不起作用!当我使用clear:cache它时说:
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
Unable to replace alias "%register_request_service%" with "register_request".
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
The service definition "%register_request_service%" does not exist.
Run Code Online (Sandbox Code Playgroud)
关于我缺少什么的任何想法?
默认情况下,anaconda正在使用我的root环境。但是,我始终使用另一个称为py34手动激活的环境。是否可以将默认环境从更改root为另一个环境?
编辑:我忘了提到我在Windows上工作。在Unix系统上,添加一行.bashrc当然是一种解决方案。
我正在运行安装了Anaconda 4.1.1(64位)的Ubuntu 16.04.
我正在使用共享计算机,而我正在尝试创建一些不同的Conda环境,这些环境充当"基础"环境,然后可以由计算机上的其他用户克隆到其本地环境.
为此,我安装了anaconda:
/usr/share/anaconda2/
对于我的测试用户,我的.condarc文件看起来像:
envs_dirs:
- /home/user1/.conda/envs
- /usr/share/anaconda2/envs
我用以下方法创建了一个conda环境: conda create --name test_base python=2 numpy scipy
然后,使用sudo,我复制/test_base从/home/user1/.conda/envs/到/usr/share/anaconda2/envs/.运行conda info --envs查找原始和复制的环境,因此我删除了用户文件夹中的副本.然后我能够source activate test_base运行python给出标准的Anaconda标题和正确版本的python.这就是我所期待的.
现在,当我做conda create --name test --clone test_base我现在有一个env叫test在/home/user1/.conda/envs/.但是,在激活此环境后运行python运行我认为是系统python.标题没有说是anaconda.
为了确保我的环境复制/usr/share/anaconda2/不会导致问题,如果我只是在主目录中创建一个基础环境,然后从那里克隆它,我会得到同样的结果.
另外,当python --version在root中运行时,我得到:Python 2.7.12 :: Anaconda 4.1.1 (64-bit),在test_base环境中,我得到:Python 2.7.12 :: Continuum Analytics, Inc.,并且在克隆环境中(测试)我只得到:Python 2.7.12
有关克隆conda环境的原因的任何想法都会丢失原始环境中包含的信息吗?如何防止这种情况,以便克隆环境实际上与原始"基础"环境相同?
编辑:当我直接安装Anaconda ~/anaconda2并从那里尝试相同的过程时,这个问题不存在.我知道我没有做任何错误的步骤.最终,我可以为机器上的每个用户创建步骤,以单独安装Anaconda并为自己创建"基础"环境.但是,我很想知道为什么这个问题存在于Anaconda的共享安装中/usr/share/anaconda2/
我有以下代码,它会引发错误并使用Hadley Wickham 的建议dump.frames()写入所有帧的转储:
a <- -1
b <- "Hello world!"
bad.function <- function(value)
{
log(value) # the log function may cause an error or warning depending on the value
}
tryCatch( {
a.local.value <- 42
bad.function(a)
bad.function(b)
},
error = function(e)
{
dump.frames(to.file = TRUE)
})
Run Code Online (Sandbox Code Playgroud)
当我重新启动 R 会话并加载转储以通过以下方式调试问题时
load(file = "last.dump.rda")
debugger(last.dump)
Run Code Online (Sandbox Code Playgroud)
我在框架中的任何位置都找不到我的变量(a,b,a.local.value)或我的函数“bad.function”。
这使得垃圾场对我来说几乎毫无价值。
我需要做什么才能查看所有变量和函数以进行体面的事后分析?
的输出debugger是:
> load(file = "last.dump.rda")
> debugger(last.dump)
Message: non-numeric argument to mathematical functionAvailable environments had calls:
1: …Run Code Online (Sandbox Code Playgroud) 我正在为我公司的网络应用程序设置测试套件.我们当时使用四种环境(生产,回归,分期,开发).我在我的cypress.json文件中设置了环境变量但是我希望能够将我的环境切换为例如从回归到开发并强制cypress将baseURL更改为我的新环境以及指向不同的cypress.json文件有发展变量.关于cypress.io环境的文档对我来说有点混乱,我不知道从哪里开始.
我是Symfony的新手.在做一些测试(Symfony的2.0.13与WAMP2.2 php5.3.8)和阅读的 文档,但我也有点与环境的混乱.
当我去LOCALHOST/Symfony/web/app_dev.php/demo/hello/Foo(app_dev意味着开发环境,对吧?)我可以看到网页调试工具条,点击的探查信息,在"项目配置"选项卡上,我可以看到:
环境开发
现在我去LOCALHOST/Symfony/web/app.php/demo/hello/Foo和调试工具栏(顺便说一句,为什么我现在看到的这个工具栏?这不是一个生产环境?是我的用户应该看到默认情况下这个吧?)我也看到了,在"项目配置"标签:
环境开发
看来,这个"演示"包是某种方式与"开发"相关的,不管URL是app_dev.php或app.php什么?
此外,我做了一些测试:我的本地IP是192.168.153.1.
当我尝试访问时:
http://192.168.153.1/Symfony/web/app_dev.php/demo/hello/Foo
Run Code Online (Sandbox Code Playgroud)
它说:"您不能访问此文件.请查看app_dev.php以获取更多信息." 所以,好吧,如果我在app_dev.php中编辑了行并添加了我的(外部)IP,我就可以访问了.
但是,当我连接到
http://192.168.153.1/Symfony/web/app.php/demo/hello/Foo
Run Code Online (Sandbox Code Playgroud)
它说的一样!因此,似乎我的app.php没有被执行,并且无论我在URL中键入什么,都会执行app_dev.php.
这真令人困惑!我检查了我的htaccess,一切似乎都是正确的.
任何人都可以帮我解决这个问题吗?
我没有修改app_dev.php的代码,也没有修改app.php,一切都只是"按原样"开箱即用.
2012-05-02编辑
发生了一件奇怪的事.我使用以下行编辑了config_prod.yml:
# load the profiler
framework:
profiler: { only_exceptions: false }
# enable the web profiler
web_profiler:
toolbar: true
intercept_redirects: true
verbose: true
Run Code Online (Sandbox Code Playgroud)
保存,然后编辑app.php文件.想要测试如果我改变了会发生什么:
$kernel = new AppKernel('prod', false); //Symfony default
Run Code Online (Sandbox Code Playgroud)
至
$kernel = new AppKernel('prod', true);
Run Code Online (Sandbox Code Playgroud)
当我去app.php /不管,一个错误页面出现,让我恢复了所有的变化,重新启动Apache和现在WebDebug工具栏不再显示PROD(app.php /其他)
所以,我不知道怎么回事,但它似乎工作作为目前预计,虽然config_prod.yml文件和app.php处于原始状态.它还允许我将我的外部IP连接到app.php
真的很奇怪...
我在理解如何将值从函数内部绑定到函数外部环境时遇到麻烦。下面显示了一个基本示例,我似乎无法解决函数的最后一部分:
number <- data.frame()
how_many_fruits <- function() {
answer <- as.integer(readline(prompt="How Many?: "))
globalenv()$number <- rbind(globalenv()$number, answer)
}
Run Code Online (Sandbox Code Playgroud)
本质上,我想在开始时有一个空的数据框number,并且每次how_many_fruits()运行时,我都希望将输入附加到number数据框的底部。
我正在考虑为私人订阅源设置NuGet服务器,这看起来很简单(有一个循序渐进的指南).我预见到的问题是它看起来不像是支持多种环境.
我主要担心的是我们更新了一个软件包并将其用于我们的测试环境,但我们不希望我们的测试版或生产环境如果出现问题就会失败...我们要等到更新被"批准"之前可用于Beta,然后是第二次批准,以使其可用于生产.
我必须加载许多文件并改变他们的数据.每个文件只包含一个data.table,但表有各种名称.
我想在所有文件上运行一个脚本 - 为此,我必须将未知分配data.table给一个通用名称...说blob.
R这样做的方法是什么?目前,我最好的猜测(这似乎是一个黑客,但有效)是加载data.table到一个新的环境,然后:assign('blob', get(objects(envir=newEnv)[1], env=newEnv).
在可重现的上下文中,这是:
newEnv <- new.env()
assign('a', 1:10, envir = newEnv)
assign('blob', get(objects(envir=newEnv)[1], env=newEnv))
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
在emberjs标签下有几个问题,讨论如何管理不同的环境,但所有问题都只适用于非常具体的场景.
我正在寻找一种如何为不同环境设置不同配置变量的通用解决方案.
比方说,我的开发环境有一个API URL,生产环境有另一个API URL .
production_api_url: "http://production.server.com/api"
development_api_url: "http://development.server.com/api"
Run Code Online (Sandbox Code Playgroud)
在我的适配器中,我想使用适当的API URL:
# /app/adapters/application.js
import ActiveModelAdapter from 'active-model-adapter';
export default ActiveModelAdapter.extend({
namespace: 'api',
host: [[API_URL]]
});
Run Code Online (Sandbox Code Playgroud)