Прежде всего, я новичок в информатике, и я француз, я надеюсь, что вы получите то, что я пытаюсь сделать здесь ...
Извините, это немного долго:
Контекст: я пытаюсь построить конвейер. Этот конвейер состоит из 2 этапов, первый из которых запускает инструмент под названием DeCoSTAR (это исполняемый файл, корзина?) Для набора файлов входных параметров. Следующая часть запускает приложение python (которое я сделал) поверх выходных файлов DeCoSTAR.
Я хочу, чтобы этот конвейер был удобным и переносимым, он должен работать на любой ОС, установленной пользователем хоста.
Для этого я пытаюсь использовать Docker.
Теперь для первого этапа я создал свой собственный Dockerfile, основанный на python-alpine образе:
FROM python:2.7-alpine3.7
MAINTAINER *********
COPY ./DeCoSTAR /bin/DeCoSTAR
COPY ./DeCoSTAR.py ./DeCoSTAR.py
DeCoSTAR.py - это способ запустить исполняемый файл DeCoSTAR для данного
файл параметров (который будет на главном компьютере). Для того, чтобы пользователь предоставил этот ввод, я использую Tkinter:
#!/usr/bin/python2.7
#coding:utf8
from Tkinter import Tk
from tkFileDialog import askopenfilename
import subprocess
from subprocess import call
def main ():
print ("Entrez un fichier paramètre:")
Tk().withdraw()
param_file=askopenfilename()
f= "/bin/DeCoSTAR parameter.file="+param_file
subprocess.call(f, shell=True)
if __name__=="__main__":
main()
Теперь дело обстоит так:
Я не могу понять, как автоматически запустить DeCoSTAR.py
Когда я запускаю мой образ, он работает на python2.7.
Я пытался RUN DeCoSTAR.py
, но это не работает.
Я использую команду exec
в Docker, чтобы попытаться все равно работать.
Запускаю python DeCoSTAR.py
Я получил это:
tkinter.TclError: без отображаемого имени и без переменной среды $ DISPLAY
Мне нужно отобразить хост-компьютер, чтобы он или она могли подобрать и предоставить собственный файл параметров. Я не хочу, чтобы он отображал файл контейнера, поэтому я думаю, что он не работает.
... помощь?