python - 如何在 Python 脚本中执行 .exe 程序?
问题描述
我有一个问题:我需要在我的 python 脚本中执行 .exe。(这个exe是用VS编译的,使用的DLL也在当前文件夹中,我可以直接在cmd中运行。)我在网上搜索了一下可以用os. system ()
,subprocess. call ()
但是都不能用。下面是这些错误日志:</ p>
import subprocess
subprocess.call("BuildingTextureRDF.exe ./data/fujiaju_cycle.csv ./data/test.csv ./data/result_csv/114.374041130.449
92626.csv 0 3 4 5 1 2 -1 3.0 8 50.0 1000.0 1")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "F:\Users\hp\Anaconda3\lib\subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "F:\Users\hp\Anaconda3\lib\subprocess.py", line 709, in __init__
restore_signals, start_new_session)
File "F:\Users\hp\Anaconda3\lib\subprocess.py", line 997, in _execute_child
startupinfo)
OSError:[WinError 193] %1 is not a valid Win32 application
我的蟒蛇信息:
Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32
所以我需要更改python版本?
如果我使用 os.system():
os.system("BuildingTextureRDF.exe ./data/fujiaju_cycle.csv ./data/test.csv ./data/result_csv/114.374041130.44992626.
csv 0 3 4 5 1 2 -1 3.0 8 50.0 1000.0 1")
弹出这个界面:(图片的大致意思是:
This application cannot run on your computer
To find a version for your computer, consult the software publisher
.)</p>
Deny access.
1
但是,这个exe在cmd中直接运行就ok了
PS H:\Flask> ./urban_texture/BuildingTextureRDF.exe ./urban_texture/data/fujiaju_cycle.csv ./urban_texture/data/test.csv
./urban_texture/data/result_csv/114.374041130.44992626.csv 0 3 4 5 1 2 -1 3.0 8 50.0 1000.0 1
Input Building File: ./urban_texture/data/fujiaju_cycle.csv
Input Lat Lon File: ./urban_texture/data/test.csv
Output Result File: ./urban_texture/data/result_csv/114.374041130.44992626.csv
FID COLUMN = 0
LATITUDE COLUMN = 3
LONGITUDE COLUMN = 4
PER FLOOR AREA COLUMN = 5
FLOORS COUNT COLUMN = 1
BUILDING HEIGHT COLUMN = 2
DEM HEIGHT COLUMN = -1
PER FLOOR HEIGHT = 3
* GEO-HASH SCALE = 8
* STEP RADIUS = 50
* MAXIMUM RADIUS = 1000
* IS NORMAILIZATION = 1
Load lat lon number: 1
2019-01-04 13:46:18 : GeoHash Scale = 8
2019-01-04 13:46:18 : Load file success. Total Number of Buildings = 279.
2019-01-04 13:46:18 : GeoHash Count = 222.
PROCESS FINISH.
解决方案
推荐阅读
- java - Hibernate - 保存方法的返回值而不是字段
- mysql - 将另一个表的列与多行连接起来
- java - 如何获取用户输入并将其存储到另一个类中的数组中?|| 爪哇
- r - 使用 R 按照预定义的顺序对列数据进行排序
- java - 序列的增量大小在实体映射中设置为 [50],而关联的数据库序列增量大小为 [1]
- r - R:使用 Plot 绘制具有超过 15 个特征的 APcluster 结果的数据可视化
- c++ - 尝试使用具有特定主体的 curl 创建 C++ PUT 请求
- javascript - 替换 VueJs 数组中的值
- android - Android 9 上的启动服务
- python - 如何让一个函数的解决方案回到函数中并打印新的解决方案?