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']

Если забыть про ./ в начале, операционная система начнёт искать программу в системных папках.

→ Ссылка