pyvenv is no longer compatible with Python built from source

Aperta
#540 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
devops

Direzione di ricerca

Start at the ::python::pyvenv resource entry point and trace how it installs the python3.7-venv package. Verify the behavior for a Python 3.7 interpreter built from source, then make completion avoid the package step when the venv module is already available. Done means the virtualenv is created without requiring an unavailable apt package.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Affected Puppet, Ruby, OS and module versions/distributions

  • Puppet: 5.56
  • Ruby: 2.4.4
  • Distribution: Ubuntu 16.04
  • Module version: 4.0.0

How to reproduce (e.g Puppet code you use)

  ::python::pyvenv { $venv_path :
    version => '3.7.6',
  }

What are you seeing

The virtualenv is not created because it cannot install the python3.7-venv package via apt. This is because my version of python3.7 was built from source, and therefore I didn't get the python3.7 package via apt. Since python3.7 is required to install python3.7-venv via apt, this fails.

When built from source, venv is already included, so an additional package containing the venv module is not necessary, so this step should be skipped.

What behaviour did you expect instead

I expected the virtualenv to be correctly created

Output log

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install python3.7-venv' returned 100:
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package python3.7-venv
E: Couldn't find any package by glob 'python3.7-venv'
E: Couldn't find any package by regex 'python3.7-venv'

Any additional information you'd like to impart

I believe that the best way to skip this step if necessary would be to check for the presence of the venv module. This could either be done using something like python3.7 -c "import venv" or pydoc3.7 venv, or checking if the folder exists at /usr/local/lib/python3.7/venv (not sure if this directory changes).

Lingua principale
Ruby
Stelle
196
Fork
371
Merge medio
5h 54m
PR unite (30g)
5

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di voxpupuli/puppet-python

Tutte le issue di voxpupuli/puppet-python

Issue simili

Altre issue su Ruby

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.