Hướng dẫn python virtual environment cannot find module - môi trường ảo python không thể tìm thấy mô-đun

Tôi đang cố gắng sử dụng mô -đun pytools trong VirtualENV do Nervana tạo ra cho gói học tập sâu neon của họ, nhưng dường như không thể tìm thấy pytools hoặc pip nó. Khi tôi vào ảo của mình, tôi thấy hành vi này:

me@ARL--M6800:~/Downloads/neon$ source .venv/bin/activate
(.venv) me@ARL--M6800:~/Downloads/neon$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import pytools
Traceback (most recent call last):
  File "", line 1, in 
  ImportError: No module named pytools
>>> 

>>> import sys
>>> sys.path
['', '/usr/local/lib/python2.7/dist-packages', '/home/me/Downloads/neon',
 '/home/me/Downloads/neon/.venv/lib/python2.7',
 '/home/me/Downloads/neon/.venv/lib/python2.7/plat-x86_64-linux-gnu',
 '/home/me/Downloads/neon/.venv/lib/python2.7/lib-tk',
 '/home/me/Downloads/neon/.venv/lib/python2.7/lib-old', 
 '/home/me/Downloads/neon/.venv/lib/python2.7/lib-dynload',
 '/usr/lib/python2.7', 
 '/usr/lib/python2.7/plat-x86_64-linux-gnu', 
 '/usr/lib/python2.7/lib-tk', 
 '/home/me/Downloads/neon/.venv/local/lib/python2.7/site-packages', 
 '/home/me/Downloads/neon/.venv/lib/python2.7/site-packages']



(.venv) me@ARL--M6800:~/Downloads/neon$ pip install pytools 
Requirement already satisfied (use --upgrade to upgrade): pytools in     
 /usr/local/lib/python2.7/dist-packages/pytools-2016.1-py2.7.egg
Requirement already satisfied (use --upgrade to upgrade): 
 decorator>=3.2.0 in /usr/local/lib/python2.7/dist-packages (from pytools)
Requirement already satisfied (use --upgrade to upgrade): appdirs>=1.4.0 
  in /usr/local/lib/python2.7/dist-packages/appdirs-1.4.0-py2.7.egg (from 
  pytools)
Requirement already satisfied (use --upgrade to upgrade): six>=1.8.0 in 
 /usr/local/lib/python2.7/dist-packages (from pytools)
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.6.0 in 
 /usr/local/lib/python2.7/dist-packages (from pytools)

Vì vậy, tôi không thể nhập pytools vì không có trên hệ thống của tôi. Theo pip, nó được cài đặt trong thư mục /usr/local/lib/python2.7/dist-packages/pytools-2016.1-py2.7.egg, để lại cho tôi 3 câu hỏi:

Đầu tiên: Tại sao ảo của tôi có thể thấy các gói toàn hệ thống của tôi? Tôi nghĩ rằng mặc định là không nhìn thấy chúng. Khi tôi nhìn vào Makefile được sử dụng để tạo VirtualEnv, tôi thấy điều này: Why can my virtualenv see my system-wide packages? I thought the default was not to see them. When I look at the Makefile used to create the virtualenv, I see this

  # where our installed python packages will live
  VIRTUALENV_DIR := .venv
  VIRTUALENV_EXE := virtualenv -p python2.7  # use pyvenv for python3 install
  ACTIVATE := $(VIRTUALENV_DIR)/bin/activate

mà sẽ cho tôi hành vi mặc định.

Thứ hai: Tại sao có các thư mục egg trong các gói hàng hóa của tôi? Điều này không làm cho việc tìm thấy các mô -đun đó khó hơn? .: Why are there egg directories in my dist-packages dir? Doesn't this make it harder to find those modules? (Though apparently, the sys.path for my system environment python has been updated to search in the egg dir. When/How???)

Thứ ba: Cách hiệu quả để sửa chữa mọi thứ để VirtualEnv của tôi sẽ có quyền truy cập vào pytools là gì?: What is an efficient way of fixing things so that my virtualenv will have access to pytools?

(Tôi đã đánh số danh sách của mình thay vì thứ nhất/thứ hai/thứ ba, nhưng sau đó mã Makefile tôi đã chèn không định dạng

Nó không phải là hiếm khi Pythonistas mới gặp khó khăn trong việc cài đặt các gói và sử dụng các mô -đun của chúng. Lỗi bực bội như thế này thường phát sinh, ngay cả khi bạn nghĩ rằng bạn đã cài đặt một gói đúng cách:packages and using their modules. Frustrating errors like this often arise, even if you think you’ve installed a package properly:

>>>

ImportError: No module named 

Điều này được gây ra bởi thực tế là phiên bản Python mà bạn đang chạy tập lệnh của bạn không được cấu hình để tìm kiếm các mô -đun nơi bạn đã cài đặt chúng. Điều này xảy ra khi bạn sử dụng cài đặt sai pip để cài đặt các gói.

Nói chung, mỗi cài đặt Python đi kèm với pip có thể thực thi riêng, được sử dụng để cài đặt các gói. Theo mặc định, pip thực thi sẽ cài đặt các gói ở vị trí nơi cài đặt Python cụ thể đó có thể tìm thấy chúng.

Vấn đề là rất phổ biến khi cài đặt nhiều phiên dịch viên python (và bằng cách mở rộng, nhiều ____4 thực thi.) Tùy thuộc vào đường dẫn của shell của bạn, chạy pip có thể gọi pip có thể thực thi được liên kết với phiên bản Python mà bạn đang sử dụng hoặc cái khác. Nếu pip sai được gọi, thì các gói mà nó cài đặt có thể sẽ không hiển thị cho trình thông dịch Python mà bạn sử dụng, gây ra

  # where our installed python packages will live
  VIRTUALENV_DIR := .venv
  VIRTUALENV_EXE := virtualenv -p python2.7  # use pyvenv for python3 install
  ACTIVATE := $(VIRTUALENV_DIR)/bin/activate
4.

Để sử dụng phiên bản pip cụ thể cho phiên bản Python mong muốn của bạn, bạn có thể sử dụng

  # where our installed python packages will live
  VIRTUALENV_DIR := .venv
  VIRTUALENV_EXE := virtualenv -p python2.7  # use pyvenv for python3 install
  ACTIVATE := $(VIRTUALENV_DIR)/bin/activate
6. Ở đây,
  # where our installed python packages will live
  VIRTUALENV_DIR := .venv
  VIRTUALENV_EXE := virtualenv -p python2.7  # use pyvenv for python3 install
  ACTIVATE := $(VIRTUALENV_DIR)/bin/activate
7 là đường dẫn đến trình thông dịch Python mong muốn, vì vậy một cái gì đó như
  # where our installed python packages will live
  VIRTUALENV_DIR := .venv
  VIRTUALENV_EXE := virtualenv -p python2.7  # use pyvenv for python3 install
  ACTIVATE := $(VIRTUALENV_DIR)/bin/activate
8 sẽ sử dụng pip thực thi cho
ImportError: No module named 
0. Tuy nhiên, điều này vẫn có những hạn chế của nó.

Ngoài ra còn có những cách khác để đi xung quanh vấn đề này. Bạn có thể sửa đổi đường dẫn Shell Shell của mình để nó sử dụng chính xác pip có thể thực thi hoặc thay đổi

ImportError: No module named 
2 để phiên bản Python mong muốn của bạn có thể tìm thấy các gói nằm trong một thư mục khác. Nhưng tất cả những điều này có thể trở nên lộn xộn nhanh chóng.

Thay vào đó, môi trường ảo thường được sử dụng để cô lập các cài đặt Python với nhau. Một môi trường ảo chứa, trong số những thứ khác, một trình thông dịch Python, thực thi pip và thư mục gói trang web, là vị trí tiêu chuẩn cho hầu hết các gói được tải xuống với pip.virtual environments are often used to isolate Python installations from one another. A virtual environment contains, among other things, a Python interpreter, a pip executable, and a site-packages directory, which is the standard location for most packages downloaded with pip.

Bằng cách kích hoạt môi trường ảo trong vỏ của bạn, bạn chỉ đưa nó đến các tệp thực thi pip và Python được cài đặt trong môi trường ảo của bạn, đảm bảo rằng các phiên bản phù hợp của cả hai ứng dụng được gọi và các gói luôn được cài đặt vào đúng vị trí. Môi trường ảo cũng cho phép bạn chạy các phiên bản khác nhau của cùng một gói với các dự án khác nhau, điều gì đó không thể nếu bạn đang sử dụng cài đặt Python toàn cầu.

Có nhiều môi trường ảo khác nhau để lựa chọn. Khóa học này sử dụng Conda, đi kèm với Anaconda. Bạn có thể tìm hiểu thêm về môi trường ảo khi làm việc với môi trường ảo Python.Conda, bundled with Anaconda. You can learn more about virtual environments in Working With Python Virtual Environments.

Làm cách nào để sửa mô -đun Python không tìm thấy?

Làm thế nào để sửa chữa ModulenotFounderror trong Python..
Đảm bảo các mô -đun nhập được cài đặt. Lấy ví dụ, Numpy. ....
Đảm bảo các mô -đun được đánh vần chính xác. ....
Hãy chắc chắn rằng các mô -đun là trong đúng vỏ. ....
Hãy chắc chắn rằng bạn sử dụng đúng đường đi ..

Làm cách nào để sửa chữa môi trường ảo trong Python?

Xây dựng lại một ảo..
1) Sử dụng một yêu cầu.Tệp TXT để ghi lại những gói bạn đang sử dụng.....
2) Xóa ảo cũ của bạn.Sử dụng VirtualEnvs đơn giản: rm -rf/home/myusername/path/to/VirtualEnv.....
3) Tạo một VirtualEnv mới.....
4) Cài đặt lại các gói của bạn.....
5) Khởi động lại ứng dụng web của bạn.....
6) Tất cả đã hoàn thành!.

Làm cách nào để kích hoạt Venv trong Python?

Kích hoạt môi trường ảo..
Trên Unix hoặc MacOS, sử dụng Bash Shell: Source/Path/to/venv/bin/kích hoạt ..
Trên UNIX hoặc MacOS, sử dụng shell csh: Source /path/to/venv/bin/activate.csh ..
Trên Unix hoặc MacOS, sử dụng vỏ cá: Source /path/to/venv/bin/activate.fish ..

Làm cách nào để kích hoạt PIP trong môi trường ảo?

Để tạo môi trường ảo, hãy truy cập thư mục dự án của bạn và chạy VENV.Nếu bạn đang sử dụng Python 2, hãy thay thế VETV bằng VirtualEnv trong các lệnh bên dưới.Đối số thứ hai là vị trí để tạo môi trường ảo.Nói chung, bạn chỉ có thể tạo điều này trong dự án của bạn và gọi nó là env.go to your project's directory and run venv. If you are using Python 2, replace venv with virtualenv in the below commands. The second argument is the location to create the virtual environment. Generally, you can just create this in your project and call it env .