Làm thế nào để kích hoạt virtualenv?


233

Tôi đã trải qua tìm kiếm và thử nhiều lựa chọn thay thế mà không thành công và đã dành vài ngày cho nó bây giờ - khiến tôi phát điên.

Chạy trên Red Hat Linux với Python 2.5.2 Bắt đầu sử dụng Virtualenv gần đây nhất nhưng không thể kích hoạt nó, tôi thấy ở đâu đó gợi ý phiên bản cần thiết trước đó vì vậy tôi đã sử dụng Virtualenv 1.6.4 vì nó sẽ hoạt động với Python 2.6.

Dường như cài đặt môi trường ảo ok

[necrailk@server6 ~]$ python virtualenv-1.6.4/virtualenv.py virtual
New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.

Môi trường có vẻ ổn

[necrailk@server6 ~]$ cd virtual
[necrailk@server6 ~/virtual]$ dir
bin  include  lib

Đang cố gắng kích hoạt

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Đã kiểm tra chmod

[necrailk@server6 ~/virtual]$ cd bin
[necrailk@server6 bin]$ ls -l
total 3160
-rw-r--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r-

Vấn đề, vì vậy tôi đã thay đổi nó

[necrailk@server6 bin]$ ls -l
total 3160
-rwxr--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r--    1 necrailk biz12        1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x    1 necrailk biz

Thử activatelại

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Vẫn không có niềm vui ...


6
bạn đã thử "nguồn ~ / virtual / bin / activ" chưa?
mmbrian

4
Từ với thư mục môi trường của bạn làm . bin/activatevà nó sẽ hoạt động tốt.
dansalmo

1
Tôi nghĩ bạn chỉ cần sử dụng sourcelệnh, tức làsource bin/activate
Hack-R

1
Tôi nghĩ rằng bạn phải làm điều này từ thư mục virtualenv vì vậy đầu tiên cd ~/.virtualenvs/*environmentname*sau đósource ~/.virtual/bin/activate
11m0

Câu trả lời:


311

Đây là quy trình làm việc của tôi sau khi tạo một thư mục và cd'vào đó:

$ virtualenv venv --distribute
New python executable in venv/bin/python
Installing distribute.........done.
Installing pip................done.
$ source venv/bin/activate
(venv)$ python

4
ok, đã thử điều này không có niềm vui [necrailk @ server6 ~ / virtual] $ cd [necrailk @ server6 ~] $ $ source virtual / bin / kích hoạt nguồn: Biến không xác định. [necrailk @ server6 ~] $ sh virtual / bin / kích hoạt [necrailk @ server6 ~] $
larry

8
Đừng nhập $ký tự, mà ii trông giống như bạn đã làm ở đây : [necrailk@server6 ~]$ $source. $được sử dụng để chỉ ra một dấu nhắc lệnh.
Justin Garrick

3
Vẫn bị lỗi nghiêm trọng () phải làm gì?

2
lỗi tương tự ở đây :( người dùng @ mintdesk ~ / python_v $ venv / bin / kích hoạt bash: venv / bin / kích hoạt: Quyền bị từ chối
Rui Lima

1
Một cách khác để gõ 'nguồn' mọi lúc là sử dụng '.':$ . venv/bin/activate
karwag

89

Bạn đã quên làm source bin/activatenơi mà nguồn là một tên thực thi. Lần đầu tiên tôi cũng bị mắc kẹt, dễ dàng nghĩ rằng hướng dẫn sử dụng đang nói "thực hiện điều này từ thư mục gốc của môi trường".

Không cần phải thực hiện activatethông qua chmod.


4
OP gõ . bin/activate. Lưu ý ., đó là một từ đồng nghĩa cho source.
Thomas

1
"Nguồn là một tên thực thi" ... mà thực thi được? cmd.exe? powershell.exe?
StingyJack

1
Tôi đang cố gắng kích hoạt một môi trường từ cron và nó sẽ không hoạt động nếu không được thực thi (chmod 755).
Tahlor

70

Bạn có thể làm

source ./python_env/bin/activate

hoặc chỉ vào thư mục

cd /python_env/bin/

và sau đó

source ./activate

Chúc may mắn.


27

Cd đến đường dẫn môi trường, đi đến thư mục bin. Tại thời điểm này khi bạn sử dụng lệnh ls, bạn sẽ thấy tệp "kích hoạt".

bây giờ gõ

source activate

23

Chuyển đến thư mục dự án. Trong trường hợp của tôi microbloglà thư mục dự án bình và trong microblogthư mục nên có appvenvthư mục. sau đó chạy lệnh dưới đây, đây là một lệnh làm việc cho tôi trong Ubuntu.

source venv/bin/activate

nhập mô tả hình ảnh ở đây


17

Vấn đề là có /bin/.lệnh. Điều đó thực sự kỳ lạ, kể từ đó. nên luôn có một liên kết đến các thư mục nó trong. (Thành thực mà nói, trừ khi .là một bí danh lạ hoặc chức năng, tôi thậm chí không xem làm thế nào nó có thể.) Nó cũng là một chút khác thường mà vỏ của bạn không có một . BUILTIN chosource .

Một cách khắc phục nhanh là chỉ cần chạy virtualenv trong một shell khác. (Một lợi thế thứ hai rõ ràng là thay vì phải có deactivatebạn exit.)

/bin/bash --rcfile bin/activate

Nếu shell của bạn hỗ trợ nó, bạn cũng có thể có sourcelệnh không chuẩn , sẽ thực hiện tương tự như. , nhưng có thể không tồn tại. (Tất cả đã nói, bạn nên cố gắng tìm hiểu tại sao môi trường của bạn lạ hoặc nó sẽ khiến bạn đau một lần nữa trong tương lai.)

Nhân tiện, bạn không cần đến chmod +xnhững tập tin đó. Các tập tin chỉ cần được thực thi nếu bạn muốn thực thi chúng trực tiếp . Trong trường hợp này, bạn đang cố gắng khởi chạy chúng từ đó ., vì vậy họ không cần nó.


2
Ngoài ra, bạn nên nguồn bin/activate, không .bin/activate. Thậm chí có thể làm việc với ....
krlmlr

@krlmlr Đúng, tôi đã cho rằng đó là một lỗi đánh máy, vì trong dòng tiếp theo anh ấy cdvào bin.
kojiro

1
hi [necrailk @ server6 ~ / virtual] $ source bin / kích hoạt Được đặt xấu (). [necrailk @ server6 ~ / virtual] $
larry

2
korjiro - bạn đã đúng - tôi đã cần tìm hiểu tại sao môi trường lại kỳ quặc - hóa ra đó là một triển khai bash không chuẩn - chuyển sang bash tiêu chuẩn đã giải quyết tất cả các vấn đề
larry 8/213

@larry rất vui vì nó hiệu quả: Đừng quên đánh dấu câu trả lời là đúng.
kojiro

17

$ mkdir <YOURPROJECT> Tạo một dự án mới

$ cd <YOURPROJECT> Thay đổi thư mục cho dự án đó

$ virtualenv <NEWVIRTUALENV> Tạo virtualenv mới

$ source <NEWVIRTUALENV>/bin/activate Kích hoạt virtualenv mới đó



9

Đối với Windows Bạn có thể thực hiện như:

Để tạo env ảo như: virtualenv envName Mạnhpython = python.exe (nếu không tạo biến môi trường)

Để kích hoạt env ảo:> \ path \ to \ envName \ Sc scripts \ activ

Để hủy kích hoạt env ảo:> \ path \ to \ env \ Sc scripts \ hủy kích hoạt

Nó hoạt động tốt trên phiên bản python mới.


Để thêm chi tiết làm rõ điều này: một khi bạn tạo môi trường ảo của mình virtualenv venv , sau đó truy cập thủ công vào thư mục Tập lệnh được tạo chỉ để xem các tệp, bạn sẽ thấy một số tệp kích hoạt. Vì vậy, đó là nơi chúng tôi kích hoạt nó cho Windows. Vì vậy, cdvào thư mục ScScript của bạn và nhập . activatevào dòng lệnh của bạn (hãy chắc chắn bao gồm một khoảng trắng sau khoảng thời gian). Bạn sẽ nhận thấy đường dẫn của bạn trong dòng lệnh thay đổi, bằng cách thêm (venv) vào đầu đường dẫn của bạn. Điều này có nghĩa là nó đã được kích hoạt.
Azurespot

6
source virtualen_name/bin/activate

mã


4
Câu trả lời này đã được cung cấp (có thêm thông tin) trong các câu trả lời hiện có. Khi trả lời các câu hỏi cũ hơn bằng câu trả lời, vui lòng đảm bảo rằng câu trả lời của bạn đóng góp một cái gì đó mới hoặc có chất lượng cao hơn so với các câu trả lời hiện có.
Mark Rotteveel

4

Tôi cũng muốn giới thiệu virtualenvwrapper. Nó hoạt động kỳ diệu đối với tôi và làm thế nào tôi luôn gặp vấn đề với việc kích hoạt. http://virtualenvwrapper.readthedocs.org/en/latest/


chào nguồn và. (dấu chấm) dường như có thể hoán đổi cho nhau necrailk @ server6 ~ / virtual] $ source bin / activ Badly được đặt () 's. điều này dường như không hoạt động
larry

sự cho phép bin của tôi: drwxrwxr-x 2 erika erika 4096 2013-01-24 14:37 bin /
Erika

theo tài liệu virtuallenvwrapper hiện chưa được thử nghiệm cho python2.5 nên không thoải mái khi thêm vào các vấn đề có thể xảy ra của tôi
larry

Chỉ là một roundup. phát hiện ra máy chủ của tôi đang sử dụng vỏ không chuẩn. Khi đổi thành Bash bình thường, mọi thứ đều hoạt động như bình thường. bây giờ hiển thị env ảo trong dấu nhắc và tất cả các đường dẫn được sửa đổi theo. Rất cám ơn sự giúp đỡ và gợi ý.
larry

3

Tạo môi trường ảo Python của riêng bạn được gọi là <Your Env _name >:. Tôi đã cho nó VE.

git clone https://github.com/pypa/virtualenv.git
python virtualenv.py VE

Để kích hoạt môi trường ảo mới của bạn, hãy chạy ( chú ý không có ./ở đây ):

. VE/bin/activate

Đầu ra mẫu ( nhắc nhở thay đổi ):

(VE)c34299@a200dblr$

Khi môi trường ảo của bạn được đặt, bạn có thể xóa Virtualenvrepo.


2
Bạn không nên kiểm tra nhánh chính của virtualenv và hy vọng nó thực sự hoạt động. Sử dụng một phiên bản được gắn thẻ thay thế.
Jon Bringhurst

3

Trên Mac, thay đổi shell thành BASH (lưu ý rằng env ảo chỉ hoạt động trong bash shell)

[user@host tools]$. venv/bin/activate 

.: Command not found.

[user@host tools]$source venv/bin/activate

Badly placed ()'s.

[user@host tools]$bash

bash-3.2$ source venv/bin/activate

(venv) bash-3.2$ 

Bingo, nó đã làm việc. Xem nhắc nhở thay đổi.

Trên Ubuntu:

user@local_host:~/tools$ source toolsenv/bin/activate

(toolsenv) user@local_host~/tools$ 

Lưu ý: nhắc nhở thay đổi


2

Tôi gặp sự cố khi chạy nguồn / bin / kích hoạt sau đó tôi nhận ra mình đang sử dụng tcsh làm vỏ thiết bị đầu cuối thay vì bash. Khi tôi chuyển đổi, tôi có thể kích hoạt venv.


1

Windows 10

Trong Windows các thư mục này được tạo:

Thư mục môi trường ảo Windows 10

Để kích hoạt Môi trường ảo trong Windows 10.

down\scripts\activate

Thư mục \ scripts chứa tập tin kích hoạt.

Linux Ubuntu

Trong Ubuntu các thư mục này được tạo:

Thư mục môi trường ảo Linux Ubuntu

Để kích hoạt Môi trường ảo trong Linux Ubuntu.

source ./bin/activate

/ thư mục bin chứa tập tin kích hoạt.


Môi trường ảo được sao chép từ Windows sang Linux Ubuntu ngược lại

Nếu thư mục môi trường ảo được sao chép từ Windows sang Linux Ubuntu thì theo thư mục:

source ./down/Scripts/activate

1

chạy mã này nó sẽ được kích hoạt nếu bạn trên một máy tính windows
source venv/Scripts/activate

nhập mô tả hình ảnh ở đây


0

Có lẽ hơi muộn để gửi câu trả lời của tôi ở đây nhưng tôi vẫn sẽ đăng, nó có thể có lợi cho ai đó,

Tôi đã phải đối mặt với cùng một vấn đề,

Lý do chính là tôi đã tạo virtualenv với tư cách là người dùng "root" Nhưng sau đó đã cố gắng kích hoạt nó bằng một người dùng khác.

chmod sẽ không hoạt động vì bạn không phải là chủ sở hữu của tệp, do đó, phương án thay thế là sử dụng chown (để thay đổi quyền sở hữu)

Ví dụ:

Nếu bạn đã tạo virtualenv tại / home / abc / ENV

Sau đó CD đến / nhà / abc

và chạy lệnh: chown -Rv [user-to- who -you muốn thay đổi quyền sở hữu] [thư mục / tên tệp có quyền thay đổi quyền sở hữu]

Trong ví dụ này, các lệnh sẽ là: chown -Rv abc ENV

Sau khi quyền sở hữu được thay đổi thành công, bạn chỉ cần chạy nguồn /ENV/bin/./activate và bạn sẽ có thể kích hoạt virtualenv một cách chính xác.


0

1- mở powershell và điều hướng đến thư mục ứng dụng của bạn 2- nhập thư mục virtualenv của bạn ex: cd. \ Venv \ Sc scripts \ 3- active virtualenv theo loại. \ Activ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.