- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Python 在我的服务器上进行一些基本的模块设置。这有点困难,因为我无法访问互联网。
这是我的代码
import sys
import os
from subprocess import CalledProcessError, STDOUT, check_output
def run_in_path(command, dir_path, env_var=''):
env_var = os.environ["PATH"] = os.environ["PATH"] + env_var
print(env_var)
try:
p = check_output(command, cwd=dir_path, stderr=STDOUT)
except CalledProcessError as e:
sys.stderr.write(e.output.decode("utf-8"))
sys.stderr.flush()
return e.returncode
else:
return 0
def main():
requests_install = run_in_path('python setup.py build',
'D:\installed_software\python modules\kennethreitz-requests-e95e173')
SQL_install = run_in_path('python setup.py install', # install SQL module pypyodbc
'D:\installed_software\python modules\pypyodbc-1.3.3\pypyodbc-1.3.3')
setup_tools = run_in_path('python setup.py install', # install setup tools
'D:\installed_software\python modules\setuptools-17.1.1')
psycopg2 = run_in_path('easy_install psycopg2-2.6.1.win-amd64-py3.3-pg9.4.4-release', # install setup tools
'D:\installed_software\python modules', ';C:\srv_apps\Python33\Scripts\easy_install.exe')
print('setup complete')
if __name__ == "__main__":
sys.exit(main())
现在当我开始尝试使用简易安装时它变得棘手了。我的 subprocess.check_output 调用似乎没有使用我的环境变量
File "C:\srv_apps\Python33\lib\subprocess.py", line 1110, in _execute_child
raise WindowsError(*e.args)
FileNotFoundError: [WinError 2] The system cannot find the file specified
我不想升级到默认安装了 easy install 的 3.4,因为 3.4 不支持我的其他模块。我的主要挑战是 subprocess.check_call 方法不将环境变量作为输入,并且我对尝试使用 Popen() 持谨慎态度,因为我过去从未真正让它成功运行过。任何帮助将不胜感激。
最佳答案
PATH
应该包含目录,例如,r'C:\Python33\Scripts'
,而不是像这样的文件:r' C:\Python33\Scripts\easy_install.exe'
不要为任意命令硬编码 utf-8
,您可以使用 universal_newlines
参数启用文本模式(未测试):
#!/usr/bin/env python3
import locale
import sys
from subprocess import CalledProcessError, STDOUT, check_output
def run(command, *, cwd=None, env=None):
try:
ignored = check_output(command, cwd=cwd, env=env,
stderr=STDOUT,
universal_newlines=True)
except CalledProcessError as e:
sys.stderr.write(e.output)
sys.stderr.flush()
return e.returncode
else:
return 0
例子:
import os
path_var = os.pathsep.join(os.environ.get('PATH', os.defpath), some_dir)
env = dict(os.environ, PATH=path_var)
run("some_command", cwd=some_path, env=env)
run("another_command", cwd=another_path, env=env)
关于subprocess - 使用 subprocess.check_output Python 的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30993411/
我正在玩子流程库。我可以执行 v = subprocess.check_output("ls") 而且效果很好。但是,当我通过 SSH 连接到一台机器上并想要执行 hadoop 命令时, v = su
我有使用 subprocess.check_output 的代码很好,我不得不重新安装 Ubuntu 16.04,然后它提示它现在找不到属性 check_output。 import subproce
我正在尝试为我正在编写的 configure.py 脚本检索 CPU 功能列表。在 shell 中,我执行如下操作: $ cat /proc/cpuinfo|grep flags|head -1|cu
#!/bin/python import subprocess import traceback import logging output_file = "/Users/abhabhin/Deskt
我在此处执行此代码时遇到问题 subprocess.check_output(['ps -ef | grep ftp | wc -l'],env=environ,shell=True) 当我从终端执行
首先,我阅读了尽可能多的与 subprocess.check_output() 相关的问题,但仍然很难找出问题所在。 如果我在 shell 中执行 kill -l 1,我会得到 1 对应的信号名称,即
我正在使用python来运行Youtube-dl ,一款用于从 YouTube 和其他网站下载视频的软件。我专门用它从 YouTube 视频下载音频。我可以通过使用 check_output() 执行
我正在使用 subprocess.check_output 运行 Xyce(SPICE 模拟器)仿真,因为我想使用它的结果进行进一步分析。 这是我使用的代码: x=subprocess.check_o
我正在尝试在 Python 2.7.5 中运行以下代码: output = subprocess.check_output(commandList) print (len(output)) 我的命令列
我正在通过 subprocess.check_output() 执行命令,因为我希望它的 o/p 存储在缓冲区中。 现在,在执行此操作时,如果命令失败或出现任何错误,则会给我的整个应用程序带来问题。
当我在 Subprocess 模块中使用 check_output 时,我从 Python shell 中得到了这个输出错误: AttributeError: 'module' object has
我正在尝试使用 mediainfo 读取视频文件的持续时间。这个 shell 命令有效 mediainfo --Inform="Video;%Duration/String3%" file 并产生类似
我在使用 subprocess.check_output() 时遇到了一些奇怪的问题。起初我只是使用 subprocess.call() 并且一切正常。然而,当我简单地将 call() 切换为 che
我想调用一个脚本,将字符串的内容通过管道传输到它的标准输入并检索它的标准输出。 我不想接触真正的文件系统,所以我不能为它创建真正的临时文件。 使用 subprocess.check_output 我可
prules=subprocess.check_output("perl ruleFinder.pl "+datasetfile+" "+myrulepath, shell=True)##call a
用crontab执行python脚本时,脚本缺少环境变量。 该脚本调用一个可执行文件,某些 Linux 发行版在 /usr/bin 下提供,而其他在 /sbin 下提供。 subprocess.che
我在我的 Raspberry Pi 3 上运行下面的代码行,并期望向用户显示输出。 (这只是我学习曲线中的一个测试) #test.py import subprocess output = subpr
我正在尝试获取的输出 dmesg | grep -i 'bios' 我已经试过了: dmsg = subprocess.check_output("dmesg | grep -i 'bios'").d
我正在使用 subprocess.check_output 调用 MS DOS 命令行应用程序以从应用程序返回 stdout 字符串。 check_ouput 的返回是关于刚刚运行的命令的信息,一个新
我试图捕获 check_output 的返回值,而不是让它自动打印到命令行。不幸的是,我的解决方案不起作用,我不知道为什么。我已经包含了我的代码及其输出: #!/usr/bin/env python3
我是一名优秀的程序员,十分优秀!