Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.python > #5247

Re: [Python-de] probleme mit python 3 popen

From Kaeptm Blaubaer <kaeptmblaubaer1000@gmail.com>
Newsgroups de.comp.lang.python
Subject Re: [Python-de] probleme mit python 3 popen
Date 2018-09-23 18:13 +0200
Message-ID <mailman.90.1537785996.2746.python-de@python.org> (permalink)
References <33920c93-417b-ef60-4f54-cdfb878ed21c@redcor.ch> <CAPPXo7C5zdzQwRMVD+AED6jq14rSMczJxQpiWAxbvdVhqMxvuQ@mail.gmail.com>

Show all headers | View raw


Das liegt wahrscheinlich daran, dass die home Variable mit bytes oder
bytearray statt mit str gefüllt ist.
Bei Python 3 ist ja schließlich str(b"foo") "b'foo'" statt "foo".

robert <robert@redcor.ch> schrieb am So., 23. Sep. 2018, 16:08:

> Hoi zäme,
>
>
> ich bin dabei scripts von v2 auf v3 zu konvertieren.
>
> Jetzt habe ich ein Problem mit popen:
>
> ich konstruiere einen Popen-Aufruf wie folgt:
>
>
> Zuerst suche ich wo der virtualenvwrapper installiert ist:
>
> cmd =['/bin/bash', '-c', 'echo $(which virtualenvwrapper.sh)']
> p =subprocess.Popen(cmd, stdout=PIPE)
> virtualenvwrapper =p.communicate()[0].strip()
> Dann bastle ich einen bash Aufruf, in dem Virtualenvwrapper aktiv ist,
> und nutze diesen um einen Eintrag beim Virtualenwrapper zu löschen.
> Dieses Vorgehen ist nötig, weil sonst bash virtualenvwrapper nicht
> kennt. Hier der Popen-Aufruf:
> commands ="""
> export WORKON_HOME=%(home)s/.virtualenvs\n
> export PROJECT_HOME=/home/robert/Devel\n
> source %(virtualenvwrapper)s\n
> rmvirtualenv %(site_name)s
> """%{
> 'home': os.path.expanduser("~"),
> 'virtualenvwrapper': virtualenvwrapper,
> 'site_name': site_name
> }
> p =subprocess.Popen(
> '/bin/bash', stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
> out, err =p.communicate(commands.encode())
> Das funktionierte mit Python 2.7 gut. Der einzige unterschied war, dass
> ich p.communicate(commands), anstelle von
> p.communicate(commands.encode()) aufrufe. In Python 3 Bekomme ich
> folgende Fehlermeldung: /bin/bash: line 6:
> b/home/robert/.virtualenvs/workbench/bin/virtualenvwrapper.sh: No such
> file or directory es scheint das b vor b/home/robert/.. zu sein, dass
> den Fehler hervorruft. Wie muss ich vorgehen, um dieses Problem zu
> vermeiden? Wenn ich dem Command string zuerst redigiere:
> commands =commands.replace("b'/home", "'/home").encode()
> funktionierts, aber das kann ja keine Lösung sein. Danke Robert
> _______________________________________________
> python-de maillist  -  python-de@python.org
> https://mail.python.org/mailman/listinfo/python-de
>

Back to de.comp.lang.python | Previous | Next | Find similar


Thread

Re: [Python-de] probleme mit python 3 popen Kaeptm Blaubaer <kaeptmblaubaer1000@gmail.com> - 2018-09-23 18:13 +0200

csiph-web