Пип со встроенным питоном
Отсюда я установил встроенный python под названием "Встраиваемый zip файл Windows x86-64", но на нем не установлен pip, также нет пакетов сайтов, и при попытке сделать python get-pip.py
не удалось запустить потому что этот файл имеет import pip
в нем. Итак, как я могу установить pip во встроенной среде Python.
Traceback (последний вызов был последним): Файл ".\Getpip.py", строка 20061, в файле main() ".\Getpip.py", строка 194, в основном файле начальной загрузки (tmpdir = tmpdir) ".\Getpip. py ", строка 82, в файле начальной загрузки импорта начальной загрузки" ", строка 961, в файле _find_and_load" ", строка 950, в файле _find_and_load_unlocked" ", строка 646, в файле _load_unlocked" ", строка 616, в _load_backward_compatible
Структура каталогов:
Directory: C:\Downloads\python-3.6.1rc1-embed-win32
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/4/2017 7:26 PM 157344 pyexpat.pyd
-a---- 3/4/2017 7:26 PM 97952 python.exe
-a---- 3/4/2017 7:26 PM 58016 python3.dll
-a---- 3/4/2017 7:26 PM 3263648 python36.dll
-a---- 3/4/2017 7:26 PM 2209284 python36.zip
-a---- 3/4/2017 7:26 PM 79 python36._pth
-a---- 3/4/2017 7:26 PM 96416 pythonw.exe
-a---- 3/4/2017 7:26 PM 23200 select.pyd
-a---- 3/4/2017 7:26 PM 866464 sqlite3.dll
-a---- 3/4/2017 7:26 PM 895648 unicodedata.pyd
-a---- 3/4/2017 7:26 PM 83784 vcruntime140.dll
-a---- 3/4/2017 7:26 PM 24224 winsound.pyd
-a---- 3/4/2017 7:26 PM 45216 _asyncio.pyd
-a---- 3/4/2017 7:26 PM 77984 _bz2.pyd
-a---- 3/4/2017 7:26 PM 101536 _ctypes.pyd
-a---- 3/4/2017 7:26 PM 215712 _decimal.pyd
-a---- 3/4/2017 7:26 PM 156832 _elementtree.pyd
-a---- 3/4/2017 7:26 PM 1042592 _hashlib.pyd
-a---- 3/4/2017 7:26 PM 183456 _lzma.pyd
-a---- 3/4/2017 7:26 PM 32416 _msi.pyd
-a---- 3/4/2017 7:26 PM 25760 _multiprocessing.pyd
-a---- 3/4/2017 7:26 PM 33952 _overlapped.pyd
-a---- 3/4/2017 7:26 PM 61600 _socket.pyd
-a---- 3/4/2017 7:26 PM 64160 _sqlite3.pyd
-a---- 3/4/2017 7:26 PM 1458848 _ssl.pyd
Ответы
Ответ 1
Недавно я столкнулся с той же проблемой. Я проверил документацию для pip, и они, похоже, говорят, что этот прецедент не поддерживается и т.д. Но так или иначе, вот мой взлом для работы модулей.
Я установил, и я имею в виду размонтированный встроенный python в каталог с именем d:\python. Я предположил, что модули будут жить в том же каталоге.
Во-первых, чтобы установить модуль pip, мне нужно было сохранить экстратированные файлы. Я изменил get -pip.py с помощью текстового редактора, который поддерживал терминаторы строк unix, удалив строки rmtree, которые удаляют временное и распакованное дерево из блоба, содержащегося в файле get-pip.py.
Я изменил оба местоположения, но нужен только последний. Строка, которую я изменил в двух местах, читала
shutil.rmtree(tmpdir, ignore_errors=True)
и я изменил его таким образом (я не хотел беспокоиться с блоками отступа python):
print('shutil.rmtree(tmpdir, ignore_errors=True)')
Теперь я запустил свой python D:\python\python.exe на модифицированном get-pip.py и нашел временный каталог, в который были распакованы файлы.
Я скопировал этот каталог (проверьте, что он содержит файл main.py) в установке python D:\python\pip (здесь я хочу, чтобы мои модули работали), гарантируя, что каталог D:\python\pip содержал файл main.py.
Модуль pip теперь установлен в каталоге python, но вам нужно еще больше взломать pip, чтобы удалить исключение выше. Я сделал это, изменив файл locations.py(в моем случае, расположенный в D:\python\pip\locations.py), чтобы вернуть места bin_py и bin_user D:\python.
т.е.:
86 if WINDOWS:
....
bin_py = 'd:/python'
bin_user = 'd:/python'
Мне пришлось изменить user_dir для pip на место, которое будет сохраняться на этом диске, который был разделен между несколькими виртуальными машинами.
Теперь модуль pip теперь работает нормально, например
d:\python\python.exe -m pip...
Ответ 2
Даже если явно указано, что версия python для встраивания не поддерживает pip, они говорят, что это возможно с осторожностью. Существует простой способ использования pip внутри встроенной версии python.
PIP может быть установлен во встроенном питоне. Вам необходимо:
Загрузите и распакуйте python "... встраиваемый zip файл". (источник: https://www.python.org/downloads/)
отредактируйте файл '[папка python]\python36._pth'. Раскомментируйте утверждение import site
, как было предложено в комментарии выше.
python36.zip
.
# Uncomment to run site.main() automatically
import site
Загрузите get-pip.py в папку установки python (источник: https://pip.pypa.io/en/stable/installing/)
выполнить команду get-pip script. это устанавливает pip в каталог [python]\Scripts
python get-pip.py
запускайте pip прямо из командной строки, так как pip - исполняемая программа (в данном примере это установка pandas)
.\Scripts\pip --install --user pandas
Вы можете найти больше информации об этом в пипс 4207
Ответ 3
Пип также может быть запрограммирован в python как команда (в этом примере устанавливается pandas):
import pip
pip.main(['install'], 'pandas')
(Источник: Установка модуля python внутри кода)
Ответ 4
как я установил pip в встраиваемый дистрибутив Python:
- распакуйте встраиваемый дистрибутив python и скопируйте туда
- запустить
python./get-pip.py
(получил здесь) - ЛИБО просто раскомментируйте строку
import site
внутри файла pythonXX._pth ИЛИ скопируйте папки (не менее pip) из только что созданной папки Lib/site-packages/в pythonXX.zip
теперь возможно python -m pip...