2017-03-28 41 views
14

Tôi đang sử dụng python 2.7 + virtualenv phiên bản 1.10.1 để chạy dự án myproject. Do một số yêu cầu dự án khác, tôi phải làm việc với phiên bản python khác (Python 3.5) và Django 1.9. Đối với điều này tôi đã cài đặt python trong thư mục người dùng của tôi. Ngoài ra tôi đã dowloaded và cài đặt virtualenv (phiên bản - 15.1.0) vào thư mục người dùng của tôi. Nhưng bất cứ khi nào tôi đang cố gắng để tạo ra env ảo Tôi nhận được báo lỗi dưới đâyCách tạo virtual env với python3

python virtualenv/virtualenv.py myproject 

Using base prefix '/home/myuser/python3' 
New python executable in /home/mount/myuser/project_python3/myproject/bin/python 
ERROR: The executable /home/mount/myuser/project_python3/myproject/bin/python is not functioning 
ERROR: It thinks sys.prefix is '/home/myuser/python3' (should be '/home/mount/myuser/project_python3/myproject') 
ERROR: virtualenv is not compatible with this system or executable 

Ai có thể cho biết những gì tôi đang làm sai với

+1

Không rõ bạn đang sử dụng Python nào khi bạn chạy 'python virtualenv/virtualenv.py myproject'. Có phải 'python' ở đây là hệ thống Python (2.7) hoặc Python cục bộ của bạn (3.5) không? – Chris

+1

Bạn đã sử dụng đúng pip, tức là pip3, để cài đặt phiên bản virtualenv - 15.1.0? –

+0

Tôi luôn tìm thấy [các tài liệu này] (http://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/) hữu ích. – blacksite

Trả lời

28

Trong Python 3.6+, mô-đun pyvenv không được dùng nữa. Sử dụng một lớp lót sau thay thế:

python3 -m venv <myenvname> 

Đây là recommended way để tạo môi trường ảo bởi cộng đồng Python.

5

Python này đã tàu với BUILTIN của nó " virtualenv "được gọi là venv kể từ phiên bản 3.3. Bạn không còn cần phải cài đặt hoặc tải xuống các tập lệnh virtualenv cho Python 3.3+.

https://docs.python.org/3/library/venv.html

Kiểm tra xem cài đặt của bạn đã cung cấp pyvenv lệnh đó nên chăm sóc của việc tạo ra các "virtualenv". Các đối số tương tự như dự án virtualenv cổ điển.

$ pyvenv --help 
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear] 
      [--upgrade] [--without-pip] 
      ENV_DIR [ENV_DIR ...] 

Creates virtual Python environments in one or more target directories. 

positional arguments: 
    ENV_DIR    A directory to create the environment in. 

optional arguments: 
    -h, --help   show this help message and exit 
    --system-site-packages 
         Give the virtual environment access to the system 
         site-packages dir. 
    --symlinks   Try to use symlinks rather than copies, when symlinks 
         are not the default for the platform. 
    --copies    Try to use copies rather than symlinks, even when 
         symlinks are the default for the platform. 
    --clear    Delete the contents of the environment directory if it 
         already exists, before environment creation. 
    --upgrade    Upgrade the environment directory to use this version 
         of Python, assuming Python has been upgraded in-place. 
    --without-pip   Skips installing or upgrading pip in the virtual 
         environment (pip is bootstrapped by default) 

Once an environment has been created, you may wish to activate it, e.g. by 
sourcing an activate script in its bin directory. 
+4

Tập lệnh này không được dùng nữa trong Python 3.6+, mặc dù mô-đun vẫn tồn tại. Việc sử dụng được khuyến cáo là: '' python3 -m venv '' –

+0

@ user73657 Tôi đang sử dụng python 3.5. Nhưng nếu tôi chạy lệnh pyenv lệnh nói của nó không tìm thấy – Anish

+0

@ user73657 pyenv không có sẵn trong 3.5.3 – Anish

-1

Cài đặt virtualenvwrapper trên đầu virtualenv để đơn giản hóa mọi thứ. Thực hiện theo các blog để cài đặt trong bước đơn giản: virtualenvwrapper

bước để tạo ra nó:

  1. mkvirtualenv -p/usr/bin/python3
  2. Cài đặt gói sử dụng - cài đặt pip package_name
  3. workon - kích hoạt virtualenv, deactivate - tắt viirtualenv
+1

Làm cách nào để thêm trình bao bọc xung quanh trợ giúp 'virtualenv' nếu chính' virtualenv' không hoạt động? – Chris

+0

Đây là câu trả lời lặp đi lặp lại. Đây cũng là một câu trả lời sai. virtualenv không được chấp nhận, đây là trình bao bọc xung quanh virtualenv –

Các vấn đề liên quan