Menggunakan virtualenv , saya menjalankan proyek saya dengan versi default Python (2.7). Pada satu proyek, saya perlu menggunakan Python 3.4.
Saya dulu brew install python3
menginstalnya di Mac saya. Sekarang, bagaimana cara membuat virtualenv yang menggunakan versi baru?
misalnya sudo virtualenv envPython3
Jika saya mencoba:
virtualenv -p python3 test
Saya mendapat:
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
import os
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable
python
python-3.x
virtualenv
Prometheus
sumber
sumber
Jawaban:
jalankan saja
Perbarui setelah pengeditan OP:
Ada bug dalam versi virtualenv OP, seperti yang dijelaskan sini . Masalah telah diperbaiki dengan menjalankan:
sumber
virtualenv -p $(which python3) envname
virtualenv -p python3 my_virtual_env
,python3
apakah dapat diakses dari luar lingkungan virtual juga?bin
,lib
,include
,local
danshare
direktori dalam direktori root proyek Anda. 2. Dalam terminal run:virtualenv -p python3 .
yang menginisialisasi virtualenv Python3 baru di direktori saat ini.Python 3 memiliki dukungan bawaan untuk lingkungan virtual - venv . Mungkin lebih baik menggunakannya. Mengacu pada dokumen:
Pembaruan untuk Python 3.6 dan yang lebih baru:
Seperti komentar pawciobiel dengan benar , sudah ditinggalkan pada Python 3.6 dan cara baru adalah:
pyvenv
sumber
python3 -m venv /path/v3
karena skrip pyvenv telah ditinggalkan sejak Python 3.6.python3 -m venv /path/v3
kesalahan di sini.Error: Command '['/path/v3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit
Apakah saya melewatkan sesuatu? Dengan--without-pip
opsi, setidaknya membuat venv dengan mengaktifkan / menonaktifkan skrip dengan benar.Saya sudah mencoba pyenv dan sangat berguna untuk mengganti versi python (global, lokal di folder atau di virtualenv):
kemudian instal versi Python yang Anda inginkan:
dan cukup buat virtualenv dengan path ke versi penerjemah yang dibutuhkan:
Itu dia, periksa versinya:
Ada juga plugin untuk pyenv pyenv-virtualenv tetapi tidak berhasil untuk saya.
sumber
Instal prasyarat.
Buat lingkungan virtual berbasis Python3. Aktifkan
--system-site-packages
opsi bendera.Atur ke dalam lingkungan virtual.
Instal persyaratan lain menggunakan
pip
manajer paket.Ketika bekerja pada beberapa proyek python secara bersamaan, biasanya disarankan untuk menginstal paket-paket umum seperti
pdbpp
global dan kemudian menggunakannya kembali dalam virtualenvs.Menggunakan teknik ini menghemat banyak waktu untuk mengambil paket dan menginstalnya, selain dari mengkonsumsi ruang disk minimal dan bandwidth jaringan.
Instruksi khusus Django
Jika ada banyak paket sistem python lebar maka disarankan untuk tidak menggunakan
--system-site-packages
flag terutama selama pengembangan karena saya perhatikan bahwa itu memperlambat startup Django banyak. Saya kira inisialisasi lingkungan Django secara manual memindai dan menambahkan semua paket situs dari jalur sistem yang mungkin menjadi alasannya. Bahkanpython manage.py shell
menjadi sangat lambat.Setelah mengatakan bahwa percobaan opsi mana yang berfungsi lebih baik. Mungkin aman untuk melewati
--system-site-packages
bendera untuk proyek Django.sumber
apt-get
tetapibrew
)bekerja untukku.
sumber
The executable python3 (from --python=python3) does not exist
, apa yang akan Anda lakukan? Saya ingin membuat isntall python3 tetapi tidak yakin apakah itu ide yang bagus atau apakah sistem saya akan bingung dengan versi python yang saya gunakanAnda dapat menentukan Versi Python tertentu saat membuat lingkungan.
Ini disebutkan dalam virtualenv.py
Dalam beberapa kasus ini harus menjadi path lengkap ke executable:
Bagaimana cara
-p
kerjanyasumber
Saya memiliki
ERROR
pesan yang sama . solusi tbrisker tidak berfungsi dalam kasus saya. Alih-alih ini memecahkan masalah:sumber
Ini yang Anda butuhkan, untuk menjalankan lingkungan virtual di python / python3
Pertama jika
virtualenv
tidak diinstal, jalankanSekarang Jalankan:
Kadang-kadang cmd
virtualenv
gagal, jika demikian gunakan ini:Sekarang aktifkan env virtual:
Atau:
Sekarang jalankan
Anda akan melihat path lengkap ke dir dan
<env_name>/bin/python
suffix AndaUntuk keluar dari virtualenv, jalankan:
sumber
Python sekarang hadir dengan implementasi lingkungan virtualnya sendiri, dengan nama "venv". Saya sarankan menggunakan itu, bukan virtualenv.
Mengutip dari venv - docs ,
Untuk windows, untuk memulai venv pada beberapa proyek, buka cmd:
(Sarankan menggunakan kutipan ganda di sekitar jalur direktori jika berisi spasi. Contoh: "C: / My Dox / Spaced Directory / Something")
Setelah venv diatur, Anda akan melihat beberapa folder baru di dalam direktori proyek Anda. Salah satunya adalah "Script".
Untuk mengaktifkan atau memanggil venv, Anda perlu:
Anda dapat menonaktifkan lingkungan virtual dengan mengetikkan "nonaktifkan" di shell Anda. Dengan ini, Anda sekarang siap untuk menginstal perpustakaan khusus proyek Anda, yang akan berada di bawah folder "Lib".
================================ Edit 1 ================ ==================== Skenario yang akan dibahas di bawah ini bukan yang awalnya ditanyakan, hanya menambahkan ini jika seseorang menggunakan vscode dengan ekstensi python
Jika Anda menggunakan kode vs dengan ekstensi python, Anda mungkin menghadapi masalah dengan pylintnya yang mengarah ke instalasi global. Dalam hal ini, pylint tidak akan dapat melihat modul yang diinstal di lingkungan virtual Anda dan karenanya akan menampilkan kesalahan saat mengimpor.
Berikut adalah metode sederhana untuk melewati ini.
Kami pada dasarnya mengaktifkan lingkungan terlebih dahulu dan kemudian menggunakan vs-code sehingga pylint dimulai di dalam lingkungan dan dapat melihat semua paket lokal.
sumber
virtualenv
untuk penggunaan sehari-hari lingkungan virtual (workon
, dll.), Tetapi untuk penciptaan lingkungan virtual baru yang andal dalampython3.x
hal ini adalah satu-satunya cara yang saya temukan berfungsi.Selain jawaban lain, saya sarankan memeriksa instance virtualenv yang Anda jalankan:
Jika ini muncul sesuatu di / usr / local / bin, maka mungkin - bahkan mungkin - bahwa Anda menginstal virtualenv (mungkin menggunakan instance dari easy_tools atau pip) tanpa menggunakan manajer paket sistem Anda (buatan dalam kasus OP). Ini masalah saya.
Bertahun-tahun yang lalu - ketika saya lebih bodoh - saya telah menginstal virtualenv dan menutupi virtualenv yang disediakan oleh paket sistem saya.
Setelah menghapus virtualenv yang lama dan rusak ini, masalah saya hilang.
sumber
Dalam python3.6 saya mencoba
python3 -m venv myenv
, sesuai dokumentasi, tetapi butuh waktu lama. Jadi perintah yang sangat sederhana dan cepat adalahpython -m venv yourenv
Ini berfungsi untuk saya di python3.6.sumber
Di Mac saya harus melakukan yang berikut untuk membuatnya bekerja.
sumber
which python2.7
atauwhich python3.5
atauwhich python3.6
, lalu ganti about--python=DIRECTORY
Jika Anda menginstal python3 (
brew install python3
) bersama dengan virtualenv burrito , Anda dapat melakukannyamkvirtualenv -p $(which python3) env_name
Tentu saja, saya tahu virtualenv burrito hanyalah pembungkus, tetapi telah membantu saya selama bertahun-tahun, mengurangi beberapa kurva belajar.
sumber
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
ini akan menambahkan jalur python3 untuk lingkungan virtual Anda.sumber
Ini berhasil untuk saya
sumber
Bagi mereka yang memiliki masalah saat bekerja dengan Anaconda3 (Python 3).
Anda bisa menggunakannya
Untuk mengaktifkan lingkungan (Linux, MacOS)
Untuk Windows
sumber
Saya mencoba semua hal di atas, itu masih tidak berhasil. Jadi sebagai brute force, saya baru saja menginstal ulang anaconda, menginstal ulang virtualenv ... dan itu berhasil.
sumber
Saya ingin menjaga python 2.7.5 sebagai versi default pada Centos 7 tetapi memiliki python 3.6.1 di lingkungan virtual yang berjalan bersama lingkungan virtual lainnya di python 2.x
Saya menemukan tautan di bawah ini solusi terbaik untuk versi python terbaru (python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-up-a-local-programming -environment-for-python-3 . Ini menunjukkan langkah-langkah untuk platform yang berbeda tetapi langkah dasarnya
sumber
Perintah sederhana di bawah ini dapat membuat env virtual dengan versi 3.5
jika Anda ingin versi env virtual sebagai 3.6
sumber
Bagi Anda yang menggunakan pipenv dan ingin menginstal versi tertentu:
sumber
Saya mendapat kesalahan yang sama karena itu menjadi konflik dengan instalasi miniconda3 jadi ketika Anda mengetik "yang virtualenv" dan jika Anda telah menginstal miniconda dan itu menunjuk ke instalasi yang Anda dapat menghapusnya (jika Anda suka saya dan belum pindah) untuk itu) atau ubah variabel lingkungan Anda untuk menunjuk ke instalasi yang Anda inginkan.
sumber
Di baris perintah Windows, berikut ini bekerja untuk saya. Pertama cari tahu di mana executable python Anda berada:
Ini akan menampilkan jalur ke python.exe yang berbeda pada sistem Anda. Ini milik saya:
Jadi untuk Python3, ini terletak di jalur pertama bagi saya, jadi saya cd ke folder root aplikasi di mana saya ingin membuat folder lingkungan virtual. Lalu saya menjalankan yang berikut ini yang mencakup jalur ke executable Python3 saya, menamai lingkungan virtual saya 'venv':
Selanjutnya, aktifkan lingkungan virtual:
Akhirnya, instal dependensi untuk lingkungan virtual ini:
Persyaratan.txt ini dapat diisi secara manual jika Anda tahu perpustakaan / modul yang diperlukan untuk aplikasi Anda di lingkungan virtual. Jika Anda menjalankan aplikasi di lingkungan lain, maka Anda dapat secara otomatis menghasilkan dependensi dengan menjalankan yang berikut (cd ke folder aplikasi di lingkungan di mana ia bekerja):
Kemudian setelah Anda memiliki requirement.txt yang telah Anda 'beku', maka Anda dapat menginstal persyaratan di komputer lain atau membersihkan lingkungan dengan yang berikut (setelah cd ke folder aplikasi):
Untuk melihat versi python Anda di lingkungan virtual, jalankan:
Lalu voila ... Anda menjalankan Python3 di lingkungan virtual Anda. Output untuk saya:
sumber