PermissionError: [Errno 13] Permission denied: './' во время subprocess.run
Выполняю команды с помощью
execution = subprocess.run(to_run, input=test, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
encoding="utf-8", timeout=timelimit)
В таком порядке
['g++', '/Users/islamshaykhiev/Downloads/main.cpp', '-o', '3solve.out']
['chmod', '+x', '3solve.out']
['./', '3solve.out']
Во время последней команды возникает ошибка
PermissionError: [Errno 13] Permission denied: './'
В чем проблема?
Сам код main.cpp
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define all(v) v.begin(), v.end()
#define trace(x) cout << #x "=" << x << endl
#define int128 __int128
#define int long long
const int mod = 1e9 + 7;
const int maxn = 5e5 + 10;
signed main() {
cin.tie();
ios_base::sync_with_stdio(false);
int x1, y1, r1, d1, x2, y2, r2, d2;
cin >> x1 >> y1 >> r1 >> d1 >> x2 >> y2 >> r2 >> d2;
double dist = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) - r1 - r2;
cout << dist / (d1 + d2) << "\n";
}
Ответы (1 шт):
Автор решения: Arhadthedev
→ Ссылка
Каждая команда состоит из имени запускаемой программы и передаваемых ей параметров командной строки. В качестве программ можно указывать исполняемые файлы и скрипты, в которых прописана строка #! путь/до/интерпретатора.
Соответственно, вы пытаетесь запустить программу ./, которой не существует (это ссылка на текущую папку). Вместо этого надо указать сразу имя того, что вы скомпилировали:
['./3solve.out']
Если забыть про ./ в начале, операционная система начнёт искать программу в системных папках.