Menggunakan virtualenv, saya menjalankan proyek-proyek dengan versi default Python (2.7). Pada satu proyek, saya perlu menggunakan Python 3.4.
Saya menggunakan brew install python3
untuk menginstalnya pada Mac saya. Sekarang, bagaimana cara membuat virtualenv yang menggunakan versi baru?
misalnya sudo virtualenv envPython3
Jika saya mencoba:
virtualenv -p python3 test
Saya mendapatkan:
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 3 memiliki built-in mendukung untuk lingkungan virtual - venv. Mungkin akan lebih baik menggunakan yang bukan. Mengacu pada dokumen:
Penciptaan lingkungan virtual ini dilakukan dengan mengeksekusi pyvenv script:
pyvenv /path/ke/baru/virtual/lingkungan
Update untuk Python 3.6 dan yang lebih baru:
Sebagai pawciobiel benar komentar, pyvenv
adalah usang sebagai Python 3.6 dan yang baru adalah:
python3 -m venv /path/to/new/virtual/environment
Menginstal prasyarat.
sudo apt-get install python3 python3-pip virtualenvwrapper
Membuat Python3 berbasis lingkungan virtual. Mengaktifkan - system-tempat-paket
bendera.
mkvirtualenv -p /usr/bin/python3 <venv-name>
Set ke lingkungan virtual.
workon <venv-name>
Menginstal persyaratan lainnya menggunakan pip
package manager.
pip install -r requirements.txt
pip install <package_name>
Ketika bekerja pada beberapa proyek-proyek python secara bersamaan hal ini biasanya dianjurkan untuk menginstal umum paket seperti pdbpp
secara global dan kemudian menggunakan kembali mereka di virtualenvs.
Dengan menggunakan teknik ini menghemat banyak waktu yang dihabiskan untuk mengambil paket dan menginstal mereka, selain memakan sedikit ruang disk dan bandwidth jaringan.
sudo -H pip3 -v install pdbpp
mkvirtualenv -p $(which python3) --system-site-packages <venv-name>
Jika ada banyak sistem yang luas paket python maka dianjurkan untuk tidak menggunakan - system-tempat-paket
bendera terutama selama perkembangan sejak aku telah melihat bahwa hal itu memperlambat Django startup banyak. Saya kira Django lingkungan inisialisasi secara manual memindai dan menambahkan semua situs paket-paket dari sistem jalan yang mungkin menjadi alasan. Bahkan python manage.py shell
menjadi sangat lambat.
Setelah mengatakan bahwa percobaan pilihan mana yang bekerja lebih baik. Mungkin aman untuk hanya melewatkan - system-tempat-paket
bendera untuk Django proyek.
I'v mencoba pyenv's sangat berguna untuk switching versi python (global, lokal di folder atau di virtualenv):
brew install pyenv
kemudian instal Python versi yang anda inginkan:
pyenv install 3.5.0
dan cukup membuat virtualenv dengan jalan yang dibutuhkan penerjemah versi:
virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv
Yang's ini, periksa versi:
. ./myenv/bin/activate && python -V
Ada juga plugin untuk pyenv pyenv-virtualenv tetapi didn't bekerja untuk saya entah bagaimana.
Anda dapat menentukan spesifik Versi Python sementara menciptakan lingkungan. It's yang disebutkan dalam virtualenv.py
virtualenv --python=python3.5 envname
Dalam beberapa kasus ini harus full path untuk executable:
virtualenv --python=/Users/username/.pyenv/versions/3.6.0/bin/python3.6 envname
Bagaimana -p
bekerja
parser.add_option(
'-p', '--python',
dest='python',
metavar='PYTHON_EXE',
help='The Python interpreter to use, e.g., --python=python3.5 will use the python3.5 '
'interpreter to create the new environment. The default is the interpreter that '
'virtualenv was installed with (%s)' % sys.executable)
Ini adalah semua yang anda butuhkan, dalam rangka untuk menjalankan sebuah lingkungan virtual dalam python / python3
Pertama jika virtualenv
tidak diinstal, jalankan
pip3 install virtualenv
Sekarang Jalankan:
virtualenv -p python3 <env name>
Kadang-kadang cmd virtualenv
gagal, jika jadi menggunakan ini:
python3 -m virtualenv <env_name> # you can specify full path instead <env_name> to install the file in a different location other than the current location
Sekarang aktifkan virtual env:
source <env_name>/bin/activate
Atau:
source `pwd`/<env_name>/bin/activate
Sekarang jalankan
which python
Anda harus melihat path lengkap untuk anda dir dan <env_name>/bin/python
akhiran
Untuk keluar dari virtualenv, jalankan:
deactivate
Python kini hadir dengan implementasi sendiri dari lingkungan virtual, dengan nama "venv". Saya akan menyarankan menggunakan itu, bukan virtualenv.
Mengutip dari venv - docs,
sudah Ditinggalkan sejak versi 3.6: pyvenv adalah alat yang direkomendasikan untuk menciptakan lingkungan virtual untuk Python 3.3 dan 3.4, dan usang dalam Python 3.6.
Berubah di versi 3.5: penggunaan venv sekarang direkomendasikan untuk menciptakan lingkungan virtual.
Untuk windows, untuk memulai venv pada beberapa proyek, buka cmd:
python -m venv "c:\path\to\myenv"
(Akan menyarankan menggunakan kutip ganda di sekitar jalur direktori jika mengandung spasi. Ex: "C:/My Dox/Spasi Direktori/Sesuatu yang")
Setelah venv adalah set up, anda akan melihat beberapa folder baru dalam direktori proyek anda. Salah satu dari mereka akan menjadi "Script".
Untuk mengaktifkan atau memanggil venv yang anda butuhkan:
C:\> <venv>\Scripts\activate.bat
Anda dapat menonaktifkan lingkungan virtual dengan mengetik "menonaktifkan" di shell anda. Dengan ini, anda sekarang siap untuk menginstal proyek perpustakaan khusus, yang akan berada di bawah folder "Lib".
================================ Edit 1 ==================================== Skenario yang akan dibahas di bawah ini adalah bukan apa yang awalnya diajukan, hanya menambahkan ini dalam kasus seseorang menggunakan vscode dengan python ekstensi
Dalam hal ini, anda menggunakan lensa dengan kode dengan python ekstensi, anda mungkin menghadapi masalah dengan pylint yang poin ke instalasi global. Dalam hal ini, pylint won't dapat melihat modul-modul yang diinstal dalam lingkungan virtual anda dan oleh karena itu akan menunjukkan kesalahan saat mengimpor.
Di sini adalah sebuah metode sederhana untuk bisa melewati ini.
cd Workspace\Scripts
.\Activate.ps1
code .
Kita pada dasarnya mengaktifkan lingkungan pertama dan kemudian menerapkan vs-kode sehingga pylint dimulai dalam lingkungan dan dapat melihat semua paket-paket lokal.
Selain jawaban yang lain, saya sarankan memeriksa apa contoh virtualenv anda mengeksekusi:
which virtualenv
Jika ini muncul sesuatu di /usr/local/bin, maka hal ini mungkin - bahkan tidak mungkin - bahwa anda menginstall virtualenv (mungkin menggunakan contoh easy_tools atau pip) tanpa menggunakan sistem anda's package manager (minuman dalam OP's kasus). Ini adalah masalah saya.
Tahun yang lalu - ketika aku bahkan lebih bodoh - aku sudah install virtualenv dan itu adalah masking sistem saya's-paket yang disediakan virtualenv.
Setelah belajar dari posting ini dan tua, rusak virtualenv, masalah saya pergi.
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAMA>
hal ini akan menambah python3
jalan untuk anda virtual enviroment.
Jika anda menginstal python3 (brew install python3
) bersama dengan virtualenv burrito, maka anda dapat melakukan mkvirtualenv -p $(yang python3) env_name
Tentu saja, aku tahu virtualenv burrito hanya bungkus, tapi telah melayani saya dengan baik selama bertahun-tahun, mengurangi beberapa kurva belajar.
Bagi mereka yang memiliki masalah saat bekerja dengan Anaconda3 (Python 3).
Anda bisa menggunakan
conda create -n name_of_your_virtualenv python=python_version
Untuk mengaktifkan lingkungan ( Linux, MacOS)
source activate name_of_your_virtualenv
Untuk Windows
activate name_of_your_virtualenv
Aku ingin menjaga python 2.7.5 sebagai default pada versi Centos 7 tetapi memiliki python 3.6.1 dalam lingkungan virtual yang berjalan di samping virtual lainnya di lingkungan python 2.x
Saya menemukan link di bawah ini solusi terbaik untuk python versi terbaru ( python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming-environment-for-python-3. Ini menunjukkan langkah-langkah untuk platform yang berbeda tetapi langkah-langkah dasar yang
Saya mencoba semua hal-hal di atas, masih didn't bekerja. Jadi sebagai brute force, saya hanya re-instal anaconda, re-instal virtualenv... dan itu berhasil.
Amans-MacBook-Pro:~ amanmadan$ pip install virtualenv
You are using pip version 6.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting virtualenv
Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB)
100% |████████████████████████████████| 3.5MB 114kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-15.0.3
Amans-MacBook-Pro:python amanmadan$ virtualenv my_env
New python executable in /Users/amanmadan/Documents/HadoopStuff/python/my_env/bin/python
Installing setuptools, pip, wheel...done.
Amans-MacBook-Pro:python amanmadan$