我希望能够在命令行上运行一行PHP代码,类似于以下选项的工作方式:
:~> perl -e "print 'hi';"
:~> python -c "print 'hi'"
:~> ruby -e "puts 'hi'"
Run Code Online (Sandbox Code Playgroud)
我希望能够做到:
:~> php "echo 'hi';"
Run Code Online (Sandbox Code Playgroud)
我已经读过有一个-r选项可以做我需要的php,但是当我尝试使用它时它似乎不可用.我尝试过使用PHP 5.2.13和PHP 4.4.9,并且都没有-r选项.
我写了这个脚本(我称之为run_php.php) - 这是有效的,但我并不是它的忠实粉丝,因为我觉得应该有更"正确"的方法来做到这一点.
#!/usr/bin/php5 -q
<?php echo eval($argv[1]); ?>
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否有-r选项?如果是这样,为什么我运行时无法使用--help?如果没有-r选项,那么执行此操作的最佳方法是什么(如果可能,不编写中间脚本)?
谢谢!
===编辑===
因为我认为上面不是很清楚,所以-r选项不适用于我.这是我正在运行的两个版本的PHP的php -h输出.
PHP 4.4.9
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>]
php <file> [args...]
-a Run interactively
-C Do not chdir to the script's directory
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d …
Run Code Online (Sandbox Code Playgroud) 这不是这个问题的重复.
我已经知道了virtualenv和virtualenvwrapper和pip,但它们似乎并不完全符合我的要求.
我正在寻找一种方法,我不仅可以安装多个版本的Python,还可以安装多个版本的Django(例如),混合匹配python的"活动"版本和Django的"活动"版本.
例如,我有Django 1.0,1.1和1.2,而trunk是"活跃的".我希望能够在Python 2.5,2.6和2.7上测试它.然后让Django 1.2"活动"并再次在我的所有Python版本上测试它.
我可以看到我可以通过使用virtualenv获得该示例,但是我说我有5个版本的Django应用程序,我想测试Python 2.5,2.6和2.7以及Django版本1.0,1.1的每个组合,以及1.2.此时,afaik,我将需要创建的虚拟环境的数量变得难以管理.
我想能够说,让Python版本X"活跃",使Django版本X"活跃",并使MyApp版本X"活跃",而不必处理创建和切换virtualenvs(我绝对不会'我想做一堆bootstrap脚本).
我正在寻找的东西是否存在于Python中,或者是否有一些我缺少关于virtualenv,virtualenvwrapper和pip的东西,它们已经可以优雅地处理这个问题了?
我发布了这个问题,寻找与Buildout for Perl 类似的东西.我认为Shipwright是我正在寻找的,但我不太确定.我玩过它,我创建了一个项目,导入了我的所有源代码和依赖项,然后我将所有内容导出到一个容器中,然后文档类型就停止了.我如何处理造船厂的船只?我是否在船上进行实际的开发工作,还是在船厂进行开发?我假设这艘船仅用于部署,但我如何实际将船只部署到网络服务器上(比如我正在使用linux,apache和直接运行cgi).
Shipwright对我正在努力完成的事情是正确的吗还是还有其他更合适的东西?理想情况下,我可以使用Shipwright,类似于我如何使用Buildout.我使用Buildout为我的开发创建一个漂亮的隔离环境,并且在部署到实时服务器时使用Buildout来管理我的所有应用程序的依赖项.
编辑:以下是我希望能够在Perl中使用Buildout做什么的亮点.
使用Buildout,我的代码库中有一个文件列出了依赖项(Perl可以是CPAN模块或其他源代码库).我可以运行一个引导脚本来获取所有这些依赖项并将它们放到我的项目中的目录中,而不是在系统级别安装它们.Buildout还创建了可以执行任何操作的实用程序脚本(运行测试,其他命令行工具,任何实际操作),并且这些脚本显式地将依赖项添加到路径中,以便在我的脚本运行时可以导入所有依赖项.
这真的非常好,它允许我管理我的依赖项,而无需在系统级别安装任何东西.这使得从一个版本更改为另一个版本非常容易.此外,它允许我使用同一模块的不同版本在同一系统上运行多个Buildout项目.最后,一个巨大的好处是,使用Buildout的目录结构,我可以将依赖项提交到源代码控制并部署到新机器,我只需要执行检出,并且所有依赖项都已满足,而无需触及安装在系统级别.
我在Python中有一个字典列表.此列表作为Web服务之间的json传递.这些Web服务基于传递的json创建独特的签名.创建签名的一部分是规范化数据有效负载并确保所有内容都处于正确的顺序,所以我这样做(在Python中) - 工作正常.
data = [{'a': '1', 'b': '2', 'c': 3}, {'d': 3}, {3: 1}, {'100': '200'}]
sorted(data)
> [{3: 1}, {'100': '200'}, {'d': 3}, {'a': '1', 'c': 3, 'b': '2'}]
Run Code Online (Sandbox Code Playgroud)
现在,我需要在混合中添加一个C#应用程序,它需要能够创建与Python代码完全相同的签名.我没有发现以与Python的sorted
内置函数相同的方式对上述数据结构进行排序的秘诀.
我正在使用ServiceStack来解析json数据.
我希望它会像做这样的事情一样容易(在C#中):
var jsonPayload = "[{\"a\": \"1\", \"b\": \"2\", \"c\": 3}, {\"d\": 3}, {3: 1}, {\"100\": \"200\"}]";
var parsedJson = JsonArrayObjects.Parse(jsonPayload);
parsedJson.Sort();
Run Code Online (Sandbox Code Playgroud)
但是,我从上面的C#代码中得到了这个例外:
`At least one object just implement IComparable`
Run Code Online (Sandbox Code Playgroud)
我理解为什么我会收到这个错误,但我不确定我应该怎么做.我真的希望我不必滚动自己的排序逻辑.我正在处理的实际数据非常动态.这只是阻止我向前发展的一个例子.
有没有人对如何在C#中使用类似sorted
嵌套数据结构的python函数进行排序有任何建议或建议?
谢谢!
我今天遇到了一个奇怪的问题.我正在使用Python标准库的string
模块letters
变量,并注意到bpython中的结果与vanilla python中的结果不同.
我正在使用Python 2.7.3和bpython 0.10.1以及virtualenv 1.8.4.这就是我所看到的.
$ bpython
>>> import string
>>> string.letters
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
$ python
>>> import string
>>> string.letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Run Code Online (Sandbox Code Playgroud)
我不确定它是否重要,但我在xubuntu 12.10上运行它.
有人可以解释一下这里发生了什么吗?
我正在使用Python重写一个遗留的Windows应用程序并在Linux上运行.最初,新应用程序需要调用遗留应用程序,以便我们在使用旧应用程序的客户和使用新应用程序的客户之间获得一致的结果.
所以我有一个Linux盒子,坐在Windows盒子旁边,我希望在Linux盒子上有一个进程在Windows盒子上执行命令并捕获结果(同步).
我最初的想法是在Windows机器上编写一个Web服务,但这意味着除了遗留应用程序之外,还要在Windows机器上运行Web服务器.
所以我认为使用Twisted.Conch可能只允许我通过网络执行命令而不需要运行Web服务器的额外开销,但我认为在Windows机器上运行ssh服务器也存在开销.
除了Web服务或ssh之外,我可以使用Python在不同的计算机上启动同步过程有哪些替代方法,或者是Web服务或ssh最好的方法?此外,如果Web服务或ssh是最好的路径,Twisted是否应该考虑使用?
python ×4
perl ×2
bpython ×1
c# ×1
command-line ×1
dependencies ×1
deployment ×1
linux ×1
php ×1
pip ×1
servicestack ×1
sorting ×1
twisted ×1
virtualenv ×1
windows ×1