当前位置: 首页 > 知识库问答 >
问题:

本地pypi包依赖于python pypi服务器

锺离伟彦
2023-03-14

我创建了本地pypi服务器http://localhost:8080/simple。我上传了我的项目需要的软件包flask mongoengine,但是当tox尝试执行pip安装时,它尝试从pypi下载nose。python组织

Collecting flask-mongoengine==0.9.2 (from -r requirements.txt (line 14))
  Downloading https://localhost:8080/packages/flask-mongoengine-0.9.2.tar.gz (112kB)
    100% |████████████████████████████████| 112kB 26.8MB/s
    Complete output from command python setup.py egg_info:
    Download error on https://pypi.python.org/simple/nose/: [Errno 101] Network is unreachable -- Some packages may not be found!
    Couldn't find index page for 'nose' (maybe misspelled?)
    Download error on https://pypi.python.org/simple/: [Errno 101] Network is unreachable -- Some packages may not be found!
    No local packages or working download links found for nose
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-n57wg0y0/flask-mongoengine/setup.py", line 74, in <module>
        'Topic :: Software Development :: Libraries :: Python Modules'
      File "/var/lib/jenkins/.pyenv/versions/3.5.2/lib/python3.5/distutils/core.py", line 108, in setup
        _setup_distribution = dist = klass(attrs)
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/setuptools/dist.py", line 315, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/setuptools/dist.py", line 361, in fetch_build_eggs
        replace_conflicting=True,
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/pkg_resources/__init__.py", line 850, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1122, in best_match
        return self.obtain(req, installer)
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1134, in obtain
        return installer(requirement)
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/setuptools/dist.py", line 429, in fetch_build_egg
        return cmd.easy_install(req)
      File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 659, in easy_install
        raise DistutilsError(msg)
    distutils.errors.DistutilsError: Could not find suitable distribution for Requirement.parse('nose')

我的pypi服务器有nos包,但有些方式,它没有重定向到那个。

尝试了第一个答案,它给出了错误

Traceback (most recent call last):
  File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/pip/req/req_install.py", line 82, in __init__
    req = Requirement(req)
  File "/var/lib/jenkins/workspace/myproject/.tox/py35/lib/python3.5/site-packages/pip/_vendor/packaging/requirements.py", line 96, in __init__
    requirement_string[e.loc:e.loc + 8]))
pip._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'[global]'"

ERROR: InvocationError: '/var/lib/jenkins/workspace/myproject/.tox/py35/bin/pip install -i http://localhost:8080 --trusted-host localhost:8080 -r requirements.txt'

共有1个答案

严天逸
2023-03-14

是否指定指向本地主机的默认值?在$HOME/中。pypirc

[distutils]
index-servers =
    localpypi

[localpypi]
repository: http://localhost:8080/simple
username:<your_localpypi_username>
password:<your_localpypi_passwd>

requirements.txt中再往上一点,这样的东西可能会代替. pypirc工作,或者可能需要添加到:

# requirements.txt
--index-url http://localhost:8080/simple
--trusted-host localhost:8080
flask-mongoengine

而对于$HOME/。config/pip/pip。形态

[global]
timeout = 1
index-url = http://localhost:8080/simple
trusted-host = localhost:8080

啊,是的,这也是可能的:

  • https://pypi.python.org/pypi/pypiserver#uploading-packages-remotely

也可能:

python setup.py dist upload -r http://localhost:8080/simple

如果pypi需要任何依赖项,则:

  • Jenkins/local builds的PyPI本地缓存
  • 如何在没有镜像的情况下创建本地自己的pypi存储库索引

我对所有可以设置的位置都感到困惑,--索引url--额外的索引url,但我的想法是为pypi和pip设置索引url?

 类似资料:
  • 配置 jar 包需要在 compile 中添加响应依赖。下面的代码添加了 libs 文件夹中的所有 jar 作为依赖。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) } android { ... } 注意:dependencies DSL 标签是标准 Gradle API 中的一部分,所以它不属于

  • 我想用一组自定义的包及其所有依赖项设置一个本地PyPi服务器。 我现在有一个格式的包列表: 我希望有一个本地PyPi服务器,可以为所有这些鸡蛋及其依赖项提供服务。 我该如何实现这一点? 理想情况下,我想有一个工具,可以采取的要求。txt文件作为输入,下载所有列出的包并将它们复制到本地pypi中。

  • 问题内容: 我有一个Jenkins实例,该实例使用从requirements.txt中附带的PyPI包来构建我的项目。但是,与TravisCI构建一样,每次从头开始构建都非常耗时,并且意味着构建要花费> 4-5分钟,这比理想情况要慢得多。 我正在寻找的是一种在本地缓存下载的软件包的方法,因此,当启动具有相同依赖项的构建时,不必从PyPI获取它就可以在本地获取,而当版本发生更改时,它可以获取上游软件

  • 我正在通过编程Clojure书学习Clojure,但很早就想从书中找到一个例子。 我从书中下载了代码示例;目录结构为 其中有一堆.clj文件,包括一个名为induction.clj的文件。 我试图运行的代码以 ...但我不能让它发挥作用。 我试着添加一个checkouts目录,并将其中的examples目录符号化。我试过用manifest.txt创建一个.jar文件,给出了1.0.0版本....

  • Gradle 支持从 Maven 或 Ivy 仓库中拉取依赖文件。首先必须将仓库添加到列表中,然后必须在 dependencies 中添加 Maven 或 Ivy 声明的包。 repositories { jcenter() } dependencies { compile 'com.google.guava:guava:18.0' } android { ... } 注意

  • 我有两种服务a.service和b.service。a、 显示服务 b、 服务 现在,当我开始b.service,我确信a.service将被启动。在运行时,突然有人扰乱 /home/admin/run.sh和systemd无法启动a.service(也是systemctl状态a.service显示为状态失败)。现在有一个选项,b.service可以知道a.service失败,它应该停止/退出吗?