在本文中,我们将带你了解为什么字符'^'会被PythonPopen忽略-如何在PopenWindows中转义'^'字符?在这篇文章中,我们将为您详细介绍为什么字符'^'会被PythonPopen忽略-
在本文中,我们将带你了解为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?在这篇文章中,我们将为您详细介绍为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?的方方面面,并解答python为什么说字符无效常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)、OpenCV – python 3.x和windows – Numpy的版本是什么?、Python Popen 未正确传递命令,发出转义字符、Python subprocess.Popen在Windows上以其他用户身份。
本文目录一览:- 为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?(python为什么说字符无效)
- ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)
- OpenCV – python 3.x和windows – Numpy的版本是什么?
- Python Popen 未正确传递命令,发出转义字符
- Python subprocess.Popen在Windows上以其他用户身份
为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?(python为什么说字符无效)
我准备了一些代码来执行这样的命令行:
c:\cygwin\bin\convert "c:\root\dropbox\www\tiff\photos\architecture\calendar-bwl-projekt\bwl01.tif" -thumbnail 352x352^ -format jpg -filter Catrom -unsharp 0x1 "c:\root\dropbox\www\tiff\thumbnails\architecture\calendar-bwl-projekt\thumbnail\bwl01.jpg"
从命令行(与上面的命令相同)可以正常工作,但352x352 ^是352x352 ^而不是352x352:
c:\cygwin\bin\convert "c:\root\dropbox\www\tiff\photos\architecture\calendar-bwl-projekt\bwl01.tif" -thumbnail 352x352^ -format jpg -filter Catrom -unsharp 0x1 "c:\root\dropbox\www\tiff\thumbnails\architecture\calendar-bwl-projekt\thumbnail\bwl01.jpg"
如果从python运行此代码-字符’^’被忽略,调整大小的图像具有传递’%sx%s’的大小,而不是%sx%s ^-Python
为什么要剪切’^’字符以及如何避免呢? :
def resize_image_to_jpg(input_file, output_file, size): resize_command = ''c:\\cygwin\\bin\\convert "%s" -thumbnail %sx%s^ -format jpg -filter Catrom -unsharp 0x1 "%s"'' \ % (input_file, size, size, output_file) print resize_command resize = subprocess.Popen(resize_command) resize.wait()
答案1
小编典典为什么Python会剪切’^’字符以及如何避免呢?
Python不会剪切^
字符。Popen()
照原样将字符串(resize_command
)传递给CreateProcess()
Windows
API调用。
很容易测试:
#!/usr/bin/env pythonimport sysimport subprocesssubprocess.check_call([sys.executable, ''-c'', ''import sys; print(sys.argv)''] + [''^'', ''<-- see, it is still here''])
后一个命令使用subprocess.list2cmdline()
遵循“解析C命令行参数”规则将列表转换为命令字符串的方式-对无效^
。
^
并不是特别的CreateProcess()
。^
如果使用shell=True
(cmd.exe
运行时)是特殊的。
当且仅当
产生的命令行将由cmd解释时,才在每个shell元字符(或每个字符)前加上一个^
字符。它包括^
自身。
ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)
我已经安装了pyOpenSSL和所有必需的包,但我不能在shell中导入OpenSSL。 我得到这个错误:
>>> import OpenSSL Traceback (most recent call last): File "<stdin>",line 1,in <module> ImportError: No module named OpenSSL
所有已安装的软件包列表:
cryptography (0.9.3) distribute (0.7.3) idna (2.0) pip (7.1.0) pyasn1 (0.1.8) pyasn1-modules (0.0.5) pyopenssl (0.15.1) requests (2.7.0) service-identity (14.0.0) setuptools (18.1) six (1.9.0) Twisted (15.2.1) urllib3 (1.11) w3lib (1.12.0) zope.interface (4.1.2)
将数据库从一台机器导入/导出到另一台机器
使用Force在Windows上导入大型MysqL .sql文件
在Windows Server 2008中:Powershell无法导入模块ActiveDirectory
无法parsing符号“IoUtils”
如何将PDF转换为文本,以便我可以用PHPparsing文本?
Django uwsgi导入错误
如何永久添加Python导入path?
Windows中的Pygame:ImportError:DLL加载失败
MysqL加载数据:在准备好的语句协议中不支持这个命令
在ELF二进制中导入名称
如果您运行的是64位版本的Windows,那么我建议您安装OpenSSL的Win64版本,可从https://slproweb.com/products/Win32OpenSSL.html (向下滚动,直到找到64位安装程序)和64位版本的pyOpenSSL,可从http://www.egenix.com/products/python/pyOpenSSL/获得
检查你没有32位版本的各种产品,python软件包等。我有一些网站包在PYTHONPATH混淆python。 我删除了环境变量PYTHONPATH和类似的PYTHONUSERBASE(都是由一些软件推荐的,我正在尝试在哪里使用32位版本的mitmproxy并向后工作…)我想保留我的64位版本的Python (2.7.6)因此,当我遇到你在这里报告的同样的错误时,我的斗争。
由于软件包名称是pyOpenSSL,我认为你改变你导入的方式:
import pyOpenSSL
OpenCV – python 3.x和windows – Numpy的版本是什么?
我从http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载了openCV并安装了它。 当我试图运行它:
import cv2
我收到错误消息:
RuntimeError: module compiled against API version a but this version of numpy is 9 Traceback (most recent call last): File "<input>",line 1,in <module> File "C:Program Files (x86)JetBrainsPyCharm Community Edition 5.0.3helperspydevpydev_import_hook.py",line 21,in do_import module = self._system_import(name,*args,**kwargs) ImportError: numpy.core.multiarray Failed to import
我想我需要设置虚拟环境并安装不同版本的Numpy,但是我需要安装哪个Numpy版本?
在安装numpy时,我的virtualenv pip没有读取正确的distutils.cfg文件
如何在Windows上安装numpy 1.8 dev?
从源头上的Scipy安装问题?
在Windows上使用OpenBLAS安装numpy的教程
用Python 3.5安装numpy Windows 8 64
为什么NumPy导入在Ubuntu 12.10 64位闲置3.30
在Windows中编译用于python的SWIG包装器
导入错误:没有名为numpy的模块(numpy已经安装)
哪个Python在Windows上用于Numpy和朋友?
windows,ImportError:DLL加载失败:指定的模块找不到
你可以尝试使用anaconda发行版。 我正在使用它,它在Windows上使用opencv很好用。
你可以从这里下载: https : //www.continuum.io/downloads
然后使用conda来安装opencv
conda install -c conda-forge opencv
conda自带预安装的numpy,scipy,pandas等,并且使得在窗口上的部署变得无痛(因为它随着构建链一起提供)。
你需要numpy版本11或以上。 你可以在下面的链接找到它。 https://pypi.python.org/pypi/numpy
总结
以上是小编为你收集整理的OpenCV – python 3.x和windows – Numpy的版本是什么?全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
Python Popen 未正确传递命令,发出转义字符
如何解决Python Popen 未正确传递命令,发出转义字符?
我试图使用 subprocess.Popen 来运行命令行并返回管道,但我注意到命令行没有按照给定的方式运行,所以 Popen 可能会在那里做一些奇怪的事情。
我需要双引号,因为路径中有空格。但它会以转义序列“ -> ”
进行转换command = r''"c:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64\lmutil" lmstat -c 27090@vcollab-lic-eu-01.asml.com -f VMoveCAE''
pipe = subprocess.Popen(command + '' & pause'',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
我明白了(我确实添加了“& pause”以便能够看到发生了什么)
''\"c:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64\lmutil\"'' is not recognized as an internal or external command,operable program or batch file.
知道如何去掉反斜杠吗?
我需要将输出返回给 Python。作为最后的手段,我可以创建批处理文件,使用 Python 运行并从文件中检索输出,但首选直接获取输出。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Python subprocess.Popen在Windows上以其他用户身份
在Windows上以Python用户身份启动子进程的最佳方式是什么?最好是XP及更高版本,但如果仅在Vista和7上运行,我也可以接受。
答案1
小编典典我不确定您是否可以使用标准python库执行此操作。但是,pywin32软件包具有win32process.CreateProcessAsUser函数,可能是您需要的。
关于为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?和python为什么说字符无效的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)、OpenCV – python 3.x和windows – Numpy的版本是什么?、Python Popen 未正确传递命令,发出转义字符、Python subprocess.Popen在Windows上以其他用户身份等相关知识的信息别忘了在本站进行查找喔。
本文标签: