标签: setuptools

使用 setuptools 时从 url 安装 whl

在我的 setup.py 中,我在参数中指定了许多库required_libraries。这些通常采用以下形式:oauthlib==2.0.6。现在我还想使用远程 url 上托管的 Wheel 安装一个库:http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.4.0-cp27-none-any.whl。简单地将其添加为结果列表中的条目required_libraries会导致错误:

'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement,....

setuptools 的文档没有太大帮助。有人有进行此类安装的经验吗?我想这将是一个常见问题,但我可能在谷歌上搜索了错误的词

python setuptools python-wheel

1
推荐指数
1
解决办法
2721
查看次数

无法导入设置工具

我什么都没做,一切都坏了。

aviv$ python3 -c 'import setuptools'
Traceback (most recent call last):
  File "/usr/lib/python3.5/pkgutil.py", line 407, in get_importer
importer = sys.path_importer_cache[path_item]
KeyError: ''
Run Code Online (Sandbox Code Playgroud)

这意味着pip坏了,气流也坏了。一切都被打破。请帮忙。

编辑:有人建议这是这个问题的重复:Python 3: ImportError "No Module named Setuptools"。我正在做不同的事情并且得到与该问题中发生的情况不同的错误,并且我还删除并重新安装python3-setuptools了可用的最新版本。仍然得到同样的错误。

编辑 2:完整回溯:

Traceback (most recent call last):
  File "/usr/lib/python3.5/pkgutil.py", line 407, in get_importer
    importer = sys.path_importer_cache[path_item]
KeyError: ''

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 11, in <module>
    from setuptools.extern.six.moves …
Run Code Online (Sandbox Code Playgroud)

python pip setuptools airflow

1
推荐指数
1
解决办法
1991
查看次数

tensorflow安装设置工具要求错误

tensorboard 1.14.0 要求setuptools版本至少应为 41.0.0,但您的setuptools 40.8.0 不兼容

我应该如何在 anaconda 提示tensorflow 安装错误中解决这个问题

我正在设置 tensorflow 安装,并希望在我的系统中完全支持 setuptools。

安装 setuptools 41.0.0 或最新版本会帮助我还是必须做其他事情?请帮忙

setuptools anaconda tensorflow tensorboard

1
推荐指数
1
解决办法
1514
查看次数

setuptools 的 find_packages 是否需要 __init__.py 文件或不识别包

setuptools 是否find_packages仍然要求包__init__.py内有一个文件?

文档说

仅当包包含__init__.py文件时才会被识别。

但我读到__init__.py不再需要文件来将目录标记为 python 包。

python setuptools python-packaging

1
推荐指数
1
解决办法
1548
查看次数

使用 setuptools 从 VCS 存储库子目录安装依赖项

我正在尝试使用 setuptools 从 VCS 和子目录内安装依赖项。

我的setup.py看起来像这样:

#!/usr/bin/env python3

from setuptools import setup

required = [
    "package"
]
dependency_links = [
    "git+ssh://git@host/repo.git@tag#subdirectory=subdir#egg=package-version"
]

setup(install_requires=required, dependency_links=dependency_links)
Run Code Online (Sandbox Code Playgroud)

在 virtualenv 中运行时python3 setup.py install,出现以下错误:

Download error on git+ssh://git@host/repo.git@tag#subdirectory=subdir#egg=package-version: unknown url type: git+ssh -- Some packages may not be found!

为了调试,我使用了以下公共 Github 存储库:

required = [
    "pycocotools"
]
dependency_links = [
    "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI#egg=pycocotools-2.0"
]
Run Code Online (Sandbox Code Playgroud)

此处建议此示例作为类似问题的解决方案。我遇到了同样的unknown url type错误(该包最终是通过 PyPI 检索的,而不是通过 VCS URL 检索的!)。

我尝试过的

git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI#egg=pycocotools-2.0
Run Code Online (Sandbox Code Playgroud)
  • python3 setup.py installunknown url …

setuptools python-3.x

1
推荐指数
1
解决办法
1091
查看次数

创建一个 python 包并在安装后像可执行文件一样使用

我正在编写一个脚本,我想像可执行文件一样使用。这意味着我想使用 pip 安装并使用它的名称运行。例子:

pip install myscript.whl
myscript
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个 whl 文件(通过“python setup.py bdist_wheel”),但是我不确定下一步是什么。在 pip install 自动创建一个可执行文件后,我该如何做到这一点,并且可以在 powershell 或 linux 终端的任何地方使用它。

python setuptools python-3.x python-wheel python-packaging

1
推荐指数
1
解决办法
886
查看次数

分发python应用程序

我有一个简单的python应用程序,其中我的目录结构如下:

  • 项目/
    • main.py
    • config.py
    • 插件/
      • plugin1
      • plugin2
      • ...

Config.py仅加载配置文件,它本身不包含任何配置信息.

我现在想要分发这个程序,我想我会使用setuptools来完成它.用户预计将使用的文件是main.py,这样一个显然已经到/ usr/bin和文件的剩余部分进入到/ usr /共享/项目.

但是有一个问题:我会以某种方式告诉main.py在共享目录中查找config.py.但我无法确定共享目录的确切位置,因为这取决于setuptools,对吧?

分发基于Python的应用程序时,最佳做法是什么?

python setuptools

0
推荐指数
1
解决办法
1273
查看次数

导入警告PACKAGE.egg被添加到sys.path

我尝试安装自己的python包.现在我收到这个错误:

/usr/lib/python2.7/dist-packages/zope/__init__.py:3: UserWarning: Module twisted was already imported from /usr/lib/python2.7/dist-packages/twisted/__init__.pyc, but /root/PACKAGE-0.1-rc is being added to sys.path
  import pkg_resources
Run Code Online (Sandbox Code Playgroud)

Weard,因为我没有告诉他将这条路径添加到sys.path.删除此文件夹后,我得到相同的错误,但路径不同

/usr/lib/python2.7/dist-packages/zope/__init__.py:3: UserWarning: Module twisted was already imported from /usr/lib/python2.7/dist-packages/twisted/__init__.pyc, but /usr/local/lib/python2.7/dist-packages/PACKAGE-0.1_rc-py2.7.egg is being added to sys.path
  import pkg_resources
Run Code Online (Sandbox Code Playgroud)

我用Google搜索并发现这里也有一个常见的错误:pkg_resources的Debian错误报告 有人在那里重现了这个错误:

$ python
Python 2.6.6 (r266:84292, Apr 20 2011, 09:34:38) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg_resources
__main__:1: UserWarning: Module paste was already imported from None, but /usr/lib/python2.6/dist-packages is being added …
Run Code Online (Sandbox Code Playgroud)

python setuptools

0
推荐指数
1
解决办法
1794
查看次数

python3 setuptools 不是包错误

我有一个具有以下目录结构的包:

mypackage
   mypackage
      __init.py__
      users.py
   bin
      mypackage.py
   setup.py
Run Code Online (Sandbox Code Playgroud)

我的 setup.py 看起来像这样:

from setuptools import setup, find_packages

setup(
    name='mypackage.py',
    version='0.9',
    packages=find_packages(),
    scripts=['bin/mypackage.py'],
    install_requires=['np', 'filelock', 'python-dateutil', 'requests', 'numpy'])
Run Code Online (Sandbox Code Playgroud)

__init__.py 包含:

import mypackage.users
Run Code Online (Sandbox Code Playgroud)

我的 bin/mypackage.py 包括:

from mypackage.users import *
Run Code Online (Sandbox Code Playgroud)

我在跑步

python3 setup.py install
Run Code Online (Sandbox Code Playgroud)

一切正常,然后在终端上输入:

mypackage.py
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

    from mypackage.users import *
ImportError: No module named 'mypackage.users'; 'mypackage' is not a package
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

python3
import mypackage
Run Code Online (Sandbox Code Playgroud)

我没有错误。我也使用 virtualenv(此处未显示),但我确定没有其他冲突。

python setuptools

0
推荐指数
1
解决办法
303
查看次数

从源代码进行 pip 安装,无需构建轮子

我有一个 Python 包,其中包含大型 PyTorch 模型检查点。我尝试将那些包含在我的setup.pyas中

package_data = {'mypackage': ['model_weights/*', 'model_weights/sequential_models*']},
Run Code Online (Sandbox Code Playgroud)

现在的问题是,每当我尝试通过源安装时,pip install mypackage/ --no-cache-dir我都会得到一个MemoryError. 我尝试调试并--verbose意识到这发生在

creating '/tmp/pip-wheel-bs29bp6a/tmpp0itbxn1/mypackage-1.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'mypackage/model_weights/distilled_model.pt'
adding 'mypackage-1.0.dist-info/RECORD'
Traceback (most recent call last):
...
File "/zhome/1d/8/153438/miniconda3/envs/testenv/lib/python3.9/zipfile.py", line 1127, in write
      data = self._compressor.compress(data)
MemoryError
Building wheel for mypackage (PEP 517) ... error
ERROR: Failed building wheel for mypackage
Run Code Online (Sandbox Code Playgroud)

我真的只想安装将文件复制到model_weights/安装目录中。将它们纳入车轮似乎是不可能的。

有没有办法在运行时抑制这一步pip install?该包只会作为源分发,而不会在 PyPI 上分发,因为model_weights文件太大了。

python pip setuptools pytorch

0
推荐指数
1
解决办法
8361
查看次数

警告:“importlib-metadata”版本与“setuptools”不兼容

我在 jupyter 笔记本上导入了 pandas 库,之后出现警告,好像importlib-metadata版本与setuptools. 并建议这个问题很可能通过安装更新​​版本来解决importlib-metadata

我已经通过安装更新​​版本完成了建议importlib-metadata

然后我重新启动内核并运行程序,但仍然出现与以前相同的警告。

这是我做的程序

import pandas as pd
Run Code Online (Sandbox Code Playgroud)

并且出现如下警告:

C:\Users\Asus\Anaconda4\lib\site-packages\setuptools_importlib.py:23: UserWarning:importlib-metadata版本与 setuptools. 通过安装更新​​版本的importlib-metadata. warnings.warn(msg) # 确保显示描述性消息。

python setuptools pandas python-importlib

0
推荐指数
1
解决办法
5353
查看次数

构建python包找不到requirements.txt

这是我第一次必须在我实际工作的仓库中使用旧 git 存储库的内容。我决定尝试创建一个 Python 包,将其作为库导入到新版本中(我使用的是 gitlab)。

\n

我已经搜索了相关信息来做到这一点,但很难找到一致的解决方案。

\n

我首先尝试通过执行以下命令在本地构建包:

\n

python setup.py bdist_wheel

\n

进而:

\n

python3 -m build

\n

该包应该构建wheel的依赖关系,但在尝试查找requirements.txt文件时它崩溃了。

\n

我之前看到该命令写入 Egg-info 文件,创建包,并将文件从本地复制到包:

\n
(venv) acivit@odin:~/projects/mechanized-number-recognition$ python3 -m build \n* Creating venv isolated environment...\n* Installing packages in isolated environment... (setuptools >= 40.8.0, wheel)\n* Getting build dependencies for sdist...\nrunning egg_info\nwriting acivit.mechanized_number_recognition.egg-info/PKG-INFO\nwriting dependency_links to acivit.mechanized_number_recognition.egg-info/dependency_links.txt\nwriting requirements to acivit.mechanized_number_recognition.egg-info/requires.txt\nwriting top-level names to acivit.mechanized_number_recognition.egg-info/top_level.txt\nreading manifest file 'acivit.mechanized_number_recognition.egg-info/SOURCES.txt'\nadding license file 'LICENSE.md'\nwriting manifest file 'acivit.mechanized_number_recognition.egg-info/SOURCES.txt'\n* Building sdist...\nrunning sdist\nrunning egg_info\nwriting acivit.mechanized_number_recognition.egg-info/PKG-INFO\nwriting dependency_links to acivit.mechanized_number_recognition.egg-info/dependency_links.txt\nwriting …
Run Code Online (Sandbox Code Playgroud)

python build setuptools package pypi

0
推荐指数
1
解决办法
548
查看次数