Я нашел один проект, в котором конечно, есть множество библиотек и нет файла requirements.txt, мне нужно создать этот файл, я пробовал сделать это через pip freeze, но он не видит никаких библиотек. Как можно решить эту проблему?
- Вопрос задан более двух лет назад
- 1287 просмотров
Комментировать
Решения вопроса 1
bituke pip freeze нужно запускать на сервере где сейчас работает проект. Если вы его скачаете себе на компьютер и выполните pip freeze то разумеется ничего не получите. Если доступа к серверу нет, то действия следующие:
1. В файле settings.py вверху есть указание на версию Django, что то вроде этого «Generated by ‘django-admin startproject’ using Django 2.2.16.» Для примера возьмем версию 2.2.16.
2. На сайте https://pypi.org/ находим пакет Django, далее переходим в «История выпусков», находим там версию 2.2.16, дата 1 сентября 2020 года.
3. Обходим весь код сайта и ищем там импортирование пакетов, например from celery import shared_task. Значит в проекте используется пакет celery.
Python ТОП 10 крутейших библиотек!
4. Идем на сайт https://pypi.org/ и находим пакет celery, далее переходим «История выпусков», и ищем последнюю версию которая была выпущена до 1 сентября 2020 года, для нас это версия 3.1 от 4 августа 2020 года.
Шаги 3 и 4 повторяем до тех пор пока не будут установлены все зависимости.
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 1
pip freeze > requirements.txt
Вам надо указать куда фризить.
Либо если вы нашли его на гите, возможно там есть папка venv, а в ней можно найти все установленные пакеты. Но это вряд ли.
Ответ написан более двух лет назад
Да не работает это. В проекте куча библиотек, я создаю виртуалку, перехожу в директорию проекта, пишу pip freeze > requirements.txt, но он не видит никаких библиотек.
пробовал менять питон, но это не помогло.
P.S. У меня у самого нет библиотек, которые требует этот проект, я думал, что можно их установить все просто одной командой. Но это не выходит, я так понимаю их нужно в ручную устанавливать, если нет файла requirements.txt?
Источник: qna.habr.com
Список загруженных и скомпилированных модулей в Python.
Атрибут sys.modules представляет собой словарь, который отображает имена модулей на модули, которые уже были загружены.
Этим можно манипулировать для принудительной перезагрузки модулей и других хитростей. Однако замена словаря не обязательно будет работать должным образом, а удаление важных элементов из словаря может привести к сбою Python.
>>> import sys >>> sys.modules.keys() # dict_keys([‘sys’, ‘builtins’, ‘encodings’, ‘codecs’, # . # . # ‘io’, ‘os’, ‘stat’,, ‘readline’, ‘atexit’, ‘rlcompleter’])
sys.builtin_module_names :
Атрибут sys.builtin_module_names представляет собой кортеж строк, дающий имена всех модулей, которые скомпилированы в этот интерпретатор Python.
Как посмотреть какие пакеты установлены в текущем окружении Python
Эта информация недоступна другим способом — sys.modules.keys() отображает только импортированные модули.
>>> import sys >>> sys.builtin_module_names # (‘_abc’, ‘_ast’, ‘_codecs’, ‘_collections’, # . # . # ‘itertools’, ‘marshal’, ‘posix’, # ‘pwd’, ‘sys’, ‘time’, ‘xxsubtype’)
sys.stdlib_module_names :
Атрибут sys.stdlib_module_names представляет собой набор строк, содержащих имена стандартных библиотечных модулей.
Вывод одинаков на всех платформах. Также перечислены модули, которые недоступны на некоторых платформах и модули, отключенные при сборке Python. Перечислены все типы модулей: чистый Python, встроенные, замороженные frozen и расширяемые модули. Тестовые модули исключены.
Для пакетов указан только основной пакет: подпакеты и подмодули не указаны. Например, в списке указан пакет электронной почты email , но не указаны подпакет email.mime и субмодуль email.message .
Новое в версии 3.10.
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- События аудита CPython.
- Функция argv модуля sys.
- Имя используемой OS.
- Различные сведения о версии Python.
- Каталоги и пути интерпретатора Python.
- Кодировка, используемая Python.
- Настройка рекурсии.
- Функции трассировки и профилирования кода модуля sys.
- Функция breakpointhook() модуля sys.
- Объекты stdin, stdout, stderr модуля sys.
- Функции exc_info() и exception() модуля sys.
- Функция getrefcount() модуля sys.
- Атрибуты path и path_hooks модуля sys.
- Список загруженных и скомпилированных модулей.
- Атрибут float_info модуля sys.
- Атрибут int_info модуля sys.
- Атрибут maxsize модуля sys.
- Атрибут byteorder модуля sys.
- Функция exit() модуля sys.
- Функция getsizeof() модуля sys.
- Атрибут dont_write_bytecode модуля sys.
- Функция warnoptions() модуля sys.
- Переменные last_type, last_value, last_traceback.
Источник: docs-python.ru
Python-сообщество
- Начало
- » Python для новичков
- » Как в интерпретаторе получить полную информацию о библиотеках и расшифровать ее?
#1 Фев. 19, 2014 18:58:29
Как в интерпретаторе получить полную информацию о библиотеках и расшифровать ее?
Как в интерпретаторе получить полную информацию о библиотеках и расшифровать ее?
Какие команды нужно вводить dir(urllib) или help(urllib)? Где почитать можно об этом?
#2 Фев. 19, 2014 19:00:14
Как в интерпретаторе получить полную информацию о библиотеках и расшифровать ее?
Например что значит эти записи ?
[code python]>>> import urllib
>>> dir(urllib)
[code python]>>> import urllib
>>> dir(urllib)
[‘__builtins__’, ‘__cached__’, ‘__doc__’, ‘__file__’, ‘__initializing__’, ‘__loader__’, ‘__name__’, ‘__package__’, ‘__path__’, ‘error’, ‘parse’, ‘request’, ‘response’]
>>>
[/code]
#3 Фев. 19, 2014 20:27:59
Как в интерпретаторе получить полную информацию о библиотеках и расшифровать ее?
Ну знаете, жаловаться на Документацию это перебор.
#4 Фев. 19, 2014 20:56:49
Как в интерпретаторе получить полную информацию о библиотеках и расшифровать ее?
ingfa_1981
Какие команды нужно вводить dir(urllib) или help(urllib)?
обе
dir() показывает пространство имён объекта
help() проходит по дереву, собирая docstring’и
print(object.__doc__)
>>> dir(print) [‘__call__’, ‘__class__’, ‘__delattr__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__le__’, ‘__lt__’, ‘__module__’, ‘__name__’, ‘__ne__’, ‘__new__’, ‘__qualname__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__self__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’] >>> >>> dir(print.__call__) [‘__call__’, ‘__class__’, ‘__delattr__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__le__’, ‘__lt__’, ‘__name__’, ‘__ne__’, ‘__new__’, ‘__objclass__’, ‘__qualname__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__self__’, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’] >>> >>> print(print.__doc__, print.__call__.__doc__, sep=’n***n’) print(value, . , sep=’ ‘, end=’n’, file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. *** x.__call__(. ) x(. ) >>> >>> help(print) >>> >>> help(print.__call__) >>>
а в документации (docs.python.org) всё подробно
Отредактировано py.user.next (Фев. 19, 2014 21:00:02)
Источник: python.su