我想知道如何在Python中使用此页面中的脚本:
http://www.fmwconcepts.com/imagemagick/textcleaner/index.php
下载时,没有扩展名。我尝试将其重命名为" textcleaner.sh"并运行以下内容:
Traceback (most recent call last):
File "C:/Users/ikdem/PycharmProjects/McAffeeeeeee/bash test.py", line 11, in <module>
subprocess.check_call(['textcleaner.sh', '-g', '-e', 'normalize', 'opl-small-1.jpg', 'output.jpg'])
File "C:\Users\ikdem\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 579, in check_call
retcode = call(*popenargs, **kwargs)
File "C:\Users\ikdem\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 560, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Users\ikdem\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "C:\Users\ikdem\AppData\Local\Programs\Python\Python35\lib\subprocess.py", line 1220, in _execute_child
startupinfo)
OSError: [WinError 193] %1 is not a valid Win32 application
但是这样做会出现这个错误:
UPDATE users
SET
id = _users.id
FROM
(
SELECT DISTINCT
address,
id
FROM users
WHERE id IS NOT NULL
GROUP BY
address,
id
) _users
WHERE
_users.address = users.address
AND users.id IS NULL;
答案 0 :(得分:1)
Windows不支持在其二进制加载器中解析Unix风格的shebang,并且需要您调用sh.exe
或bash.exe
的副本,并将其传递给脚本的路径通过脚本的参数。您通常可以在MinGW或MSYS安装中找到这些可执行文件。
答案 1 :(得分:1)
在Windows系统上,默认shell不是bash
。重命名为.sh
将无济于事,Windows会尝试execv
您的文件,这不是Windows可执行文件,它解释了来自Windows的(错误)错误消息。
你能做的最好的事情是:
C:\MSYS2
代码:
subprocess.check_call([r'C:\MSYS2\bin\sh','-c','textcleaner.sh', '-g', '-e', 'normalize', 'input_image.jpg', 'output_image.jpg'])
答案 2 :(得分:0)
只有在使用Unix终端时才能在Windows上运行我的脚本,例如安装Cygwin或使用Unix内置的Windows 10并安装ImageMagick。
如果从Windows上的unix终端运行Python,则可以运行它。请参阅http://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=32920,我在其中运行一个简单的Imagemagick命令。
您可以使用转换为Magick.Net的脚本版本在Windows上本机运行它。见https://github.com/dlemstra/FredsImageMagickScripts.NET
以任何形式出于商业目的使用我的脚本都需要获得许可。否则使用是免费的。