Я абсолютный новичок с Python (я пришел с Java), и у меня есть следующие сомнения по поводу папки venv в моем проекте.
Так что в основном я имею структура этого проекта:
Как вы можете видеть, он содержит папку venv . Читая официальную документацию Python: https://docs.python.org/3/library/venv.html
Я могу прочитать:
Модуль venv поддерживает создание легких «виртуальных сред» с их собственные каталоги сайтов, опционально изолированные от системных каталогов сайтов. Каждая виртуальная среда имеет свой собственный двоичный файл Python (который соответствует версии двоичного файла, который использовался для создания этой среды) и может иметь собственный независимый набор установленных пакетов Python в своих каталогах сайта.
Итак, насколько я понимаю, это означает, что, используя venv , каждый проект имеет свою собственную папку venv , содержащую:
Папка bin : содержит двоичный файл интерпретатора Python (в данном случае c Python 3.7).
lib папка: содержит зависимости, которые я установил с помощью pip3 (в действительности я установил scapy и scapy_http через pip3)
Это потому, что моя PyCharm IDE настроена на использование Python 3.7
Если эти рассуждения верны (я точно не уверен), это означает, что когда я запускаю что-то вроде:
python3 packet_sniffer.py
сценарий packet_sniffer.py (содержится в предыдущем про ject) будет выполняться с использованием Python 3 bynary и зависимостей, которые находятся в моей папке venv . Правильно ли это?
Если мои рассуждения верны, у меня возникает следующее сомнение:
Что произойдет, когда я использую Python 2 от
python packet_sniffer.py
Я полагаю, что он больше не использует версию Python 3, встроенную в папку venv моего проекта. И какие зависимости scapy я использую? откуда он взялся?
Как вы видите, работает с python вместо python3 Я использую Python 2 версию:
root@kali:~# python --version
Python 2.7.17
root@kali:~# python3 --version
Python 3.7.5