使用pip打包安装

问题描述

我有一个 Python 离线存储库。当我尝试从 PyCharm 终端安装软件包时,出现错误

pip install http://IP_Adress/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64 Selenium

错误是:

    (venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64 Selenium
Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64
  Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64
     - 3.5 MB 5.0 MB/s
  ERROR: Cannot unpack file C:\Users\Administrator\AppData\Local\Temp\1\pip-unpack-_b5zun_c\win-64 (downloaded from C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-aechvlnx,content-type: text/html;charset=ISO-8859-1); cannot
 detect archive format
ERROR: Cannot determine archive format of C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-aechvlnx

离线存储库只有 tar.bz 文件。我认为这可能是问题所在,并尝试从 tar.bz 中提取硒包。

tar -xvf Selenium-3.9.0-py36_0.tar.bz2

此命令提取 2 个目录,分别是 infoLib。我不明白应该给 pip 哪个目录才能安装,所以我写了两个目录。我又犯了错误

(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files Selenium
Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files
  Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files (1.5 kB)
  ERROR: Cannot unpack file C:\Users\Administrator\AppData\Local\Temp\1\pip-unpack-pyjq7zca\extracted_files (downloaded from C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-p1p94wxu,content-type: text/html;charset=ISO-8859-1
); cannot detect archive format
ERROR: Cannot determine archive format of C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-p1p94wxu

(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files/info Selenium
Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files/info
  Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files/info (2.8 kB)
  ERROR: Cannot unpack file C:\Users\Administrator\AppData\Local\Temp\1\pip-unpack-g49u5kfo\info (downloaded from C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-xe2_za7n,content-type: text/html;charset=ISO-8859-1); cannot d
etect archive format
ERROR: Cannot determine archive format of C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-xe2_za7n

(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files/Lib Selenium
Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files/Lib
  Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/extracted_files/Lib (1.1 kB)
  ERROR: Cannot unpack file C:\Users\Administrator\AppData\Local\Temp\1\pip-unpack-kvgxbu_1\Lib (downloaded from C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-orjzw289,content-type: text/html;charset=ISO-8859-1); cannot de
tect archive format
ERROR: Cannot determine archive format of C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-orjzw289

此外,我还尝试了以下命令,这再次导致错误

C:\Users\Administrator\PycharmProjects\pythonProject>pip install selenium
WARNING: retrying (Retry(total=4,connect=None,read=None,redirect=None,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000D513C67670>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=3,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000D513C67A90>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=2,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000D513C67C10>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=1,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000D513C67DF0>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=0,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000D513C5B4F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
ERROR: Could not find a version that satisfies the requirement selenium (from versions: none)
ERROR: No matching distribution found for selenium



(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install --trusted-host IP_Address  http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pk
gs/main/win-64/ selenium
Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/
  Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/
     - 3.5 MB ...
  ERROR: Cannot unpack file C:\Users\Administrator\AppData\Local\Temp\1\pip-unpack-17_v5oie\win-64 (downloaded from C:\Users\Administrator\AppData\Local\Temp\1\pip-req-
build-h0c_a540,content-type: text/html;charset=ISO-8859-1); cannot detect archive format
ERROR: Cannot determine archive format of C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-h0c_a540



(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install --trusted-host IP_Address --extra-index-url http://IP_Address/PythonRepositories/Windows/rep
o.anaconda.com/pkgs/main/win-64/ selenium
Looking in indexes: https://pypi.org/simple,http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/
WARNING: retrying (Retry(total=4,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000C5BCEA9A30>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=3,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000C5BCEA9BE0>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=2,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000C5BCEA9D90>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=1,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000C5BCEA9F40>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
WARNING: retrying (Retry(total=0,status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.
HTTPSConnection object at 0x000000C5BCED7130>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')': /simple/selenium/
ERROR: Could not find a version that satisfies the requirement selenium (from versions: none)
ERROR: No matching distribution found for selenium


(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install --trusted-host IP_Address http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkg
s/main/win-64/ "selenium-3.9.0-py36_."
ERROR: Invalid requirement: 'selenium-3.9.0-py36_.'

编辑

我尝试下面写在答案中的命令。它给出了不同的行为。它开始下载真正的包(876 KB),但给出错误退出

注意我客户端的pip版本是20.2.3

(venv) C:\Users\Administrator\PycharmProjects\pythonProject>pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2
Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2
  Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2 (876 kB)
     |████████████████████████████████| 876 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\administrator\pycharmprojects\pythonproject\venv\scripts\python.exe' -c 'import sys,setuptools,tokenize; sys.argv[0] = '"'"'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pi
p-req-build-mk5is0qr\\setup.py'"'"'; __file__='"'"'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pip-req-build-mk5is0qr\\setup.py'"'"';f=getattr(tokenize,'"'"'open'"'"',open)(__file__);code=f.read
().replace('"'"'\r\n'"'"','"'"'\n'"'"');f.close();exec(compile(code,__file__,'"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\Administrator\AppData\Local\Temp\1\pip-pip-egg-info-hvvkolxv'
         cwd: C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-mk5is0qr\
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>",line 1,in <module>
      File "C:\Users\Administrator\AppData\Local\Programs\Python\python38\lib\tokenize.py",line 392,in open
        buffer = _builtin_open(filename,'rb')
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pip-req-build-mk5is0qr\\setup.py'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.utput.

我也得到了 pip 安装日志。他们在下面。似乎缺少“setup.py”文件或目录。我应该下载该包并将其放入目录中吗?有那个包的链接吗?

2021-01-15T09:32:20,060 Using pip 20.2.3 from c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip (python 3.8)
2021-01-15T09:32:20,076 Non-user install because user site-packages disabled
2021-01-15T09:32:20,076 Created temporary directory: C:\Users\Administrator\AppData\Local\Temp\1\pip-ephem-wheel-cache-oyzheyaq
2021-01-15T09:32:20,076 Created temporary directory: C:\Users\Administrator\AppData\Local\Temp\1\pip-req-tracker-5t2tri7w
2021-01-15T09:32:20,076 Initialized build tracking at C:\Users\Administrator\AppData\Local\Temp\1\pip-req-tracker-5t2tri7w
2021-01-15T09:32:20,076 Created build tracker: C:\Users\Administrator\AppData\Local\Temp\1\pip-req-tracker-5t2tri7w
2021-01-15T09:32:20,076 Entered build tracker: C:\Users\Administrator\AppData\Local\Temp\1\pip-req-tracker-5t2tri7w
2021-01-15T09:32:20,076 Created temporary directory: C:\Users\Administrator\AppData\Local\Temp\1\pip-install-j3apk6ad
2021-01-15T09:32:20,076 Collecting http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2
2021-01-15T09:32:20,076   Created temporary directory: C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-57fyjwkw
2021-01-15T09:32:20,076   Created temporary directory: C:\Users\Administrator\AppData\Local\Temp\1\pip-unpack-i3ywdpyn
2021-01-15T09:32:20,092   Downloading http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2 (876 kB)
2021-01-15T09:32:20,638   Added http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2 to build tracker 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pip-req-tracker-5t2tri7w'
2021-01-15T09:32:20,638     Running setup.py (path:C:\Users\Administrator\AppData\Local\Temp\1\pip-req-build-57fyjwkw\setup.py) egg_info for package from http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2
2021-01-15T09:32:20,638     Created temporary directory: C:\Users\Administrator\AppData\Local\Temp\1\pip-pip-egg-info-u0ef2h8b
2021-01-15T09:32:20,638     Running command python setup.py egg_info
2021-01-15T09:32:20,888     Traceback (most recent call last):
2021-01-15T09:32:20,888       File "<string>",in <module>
2021-01-15T09:32:20,888       File "C:\Users\Administrator\AppData\Local\Programs\Python\python38\lib\tokenize.py",in open
2021-01-15T09:32:20,888         buffer = _builtin_open(filename,'rb')
2021-01-15T09:32:20,888     FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pip-req-build-57fyjwkw\\setup.py'
2021-01-15T09:32:20,904 ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
2021-01-15T09:32:20,904 Exception information:
2021-01-15T09:32:20,904 Traceback (most recent call last):
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\cli\base_command.py",line 228,in _main
2021-01-15T09:32:20,904     status = self.run(options,args)
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\cli\req_command.py",line 182,in wrapper
2021-01-15T09:32:20,904     return func(self,options,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\commands\install.py",line 323,in run
2021-01-15T09:32:20,904     requirement_set = resolver.resolve(
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\resolution\legacy\resolver.py",line 183,in resolve
2021-01-15T09:32:20,904     discovered_reqs.extend(self._resolve_one(requirement_set,req))
2021-01-15T09:32:20,line 388,in _resolve_one
2021-01-15T09:32:20,904     abstract_dist = self._get_abstract_dist_for(req_to_install)
2021-01-15T09:32:20,line 340,in _get_abstract_dist_for
2021-01-15T09:32:20,904     abstract_dist = self.preparer.prepare_linked_requirement(req)
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\operations\prepare.py",line 482,in prepare_linked_requirement
2021-01-15T09:32:20,904     abstract_dist = _get_prepared_distribution(
2021-01-15T09:32:20,line 91,in _get_prepared_distribution
2021-01-15T09:32:20,904     abstract_dist.prepare_distribution_Metadata(finder,build_isolation)
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\distributions\sdist.py",line 40,in prepare_distribution_Metadata
2021-01-15T09:32:20,904     self.req.prepare_Metadata()
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\req\req_install.py",line 555,in prepare_Metadata
2021-01-15T09:32:20,904     self.Metadata_directory = self._generate_Metadata()
2021-01-15T09:32:20,line 530,in _generate_Metadata
2021-01-15T09:32:20,904     return generate_Metadata_legacy(
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\operations\build\Metadata_legacy.py",line 70,in generate_Metadata
2021-01-15T09:32:20,904     call_subprocess(
2021-01-15T09:32:20,904   File "c:\users\administrator\pycharmprojects\pythonproject\venv\lib\site-packages\pip\_internal\utils\subprocess.py",line 242,in call_subprocess
2021-01-15T09:32:20,904     raise InstallationError(exc_msg)
2021-01-15T09:32:20,904 pip._internal.exceptions.InstallationError: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
2021-01-15T09:32:20,920 1 location(s) to search for versions of pip:
2021-01-15T09:32:20,920 * https://pypi.org/simple/pip/
2021-01-15T09:32:20,920 Fetching project page and analyzing links: https://pypi.org/simple/pip/
2021-01-15T09:32:20,920 Getting page https://pypi.org/simple/pip/
2021-01-15T09:32:20,920 Found index url https://pypi.org/simple
2021-01-15T09:32:20,920 Could not fetch URL https://pypi.org/simple/pip/: connection error: HTTPSConnectionPool(host='pypi.org',port=443): Max retries exceeded with url: /simple/pip/ (Caused by NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x00000048095AD5B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo Failed')) - skipping
2021-01-15T09:32:20,920 Given no hashes to check 0 links for project 'pip': discarding no candidates
2021-01-15T09:32:20,920 Removed http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/selenium-3.9.0-py36_0.tar.bz2 from build tracker 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pip-req-tracker-5t2tri7w'
2021-01-15T09:32:20,920 Removed build tracker: 'C:\\Users\\Administrator\\AppData\\Local\\Temp\\1\\pip-req-tracker-5t2tri7w'

解决方法

您必须提供包的完整路径(或整个 url,如果它位于服务器上):

$ pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/Selenium-3.9.0-py36_0.tar.bz2

代替

$ pip install http://IP_Address/PythonRepositories/Windows/repo.anaconda.com/pkgs/main/win-64/ Selenium

你得到的错误是由 pip 试图解压目录而不是存档引起的(至少我是这么认为的)