在我的 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 的文档没有太大帮助。有人有进行此类安装的经验吗?我想这将是一个常见问题,但我可能在谷歌上搜索了错误的词
我什么都没做,一切都坏了。
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) tensorboard 1.14.0 要求setuptools版本至少应为 41.0.0,但您的setuptools 40.8.0 不兼容
我应该如何在 anaconda 提示tensorflow 安装错误中解决这个问题
我正在设置 tensorflow 安装,并希望在我的系统中完全支持 setuptools。
安装 setuptools 41.0.0 或最新版本会帮助我还是必须做其他事情?请帮忙
setuptools 是否find_packages仍然要求包__init__.py内有一个文件?
文档说
仅当包包含
__init__.py文件时才会被识别。
但我读到__init__.py不再需要文件来将目录标记为 python 包。
我正在尝试使用 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 install:unknown url …我正在编写一个脚本,我想像可执行文件一样使用。这意味着我想使用 pip 安装并使用它的名称运行。例子:
pip install myscript.whl
myscript
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个 whl 文件(通过“python setup.py bdist_wheel”),但是我不确定下一步是什么。在 pip install 自动创建一个可执行文件后,我该如何做到这一点,并且可以在 powershell 或 linux 终端的任何地方使用它。
我有一个简单的python应用程序,其中我的目录结构如下:
Config.py仅加载配置文件,它本身不包含任何配置信息.
我现在想要分发这个程序,我想我会使用setuptools来完成它.用户预计将使用的文件是main.py,这样一个显然已经到/ usr/bin和文件的剩余部分进入到/ usr /共享/项目.
但是有一个问题:我会以某种方式告诉main.py在共享目录中查找config.py.但我无法确定共享目录的确切位置,因为这取决于setuptools,对吧?
分发基于Python的应用程序时,最佳做法是什么?
我尝试安装自己的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) 我有一个具有以下目录结构的包:
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 包,其中包含大型 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文件太大了。
我在 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) # 确保显示描述性消息。
这是我第一次必须在我实际工作的仓库中使用旧 git 存储库的内容。我决定尝试创建一个 Python 包,将其作为库导入到新版本中(我使用的是 gitlab)。
\n我已经搜索了相关信息来做到这一点,但很难找到一致的解决方案。
\n我首先尝试通过执行以下命令在本地构建包:
\npython setup.py bdist_wheel
进而:
\npython3 -m build
该包应该构建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) setuptools ×12
python ×10
pip ×2
python-3.x ×2
python-wheel ×2
airflow ×1
anaconda ×1
build ×1
package ×1
pandas ×1
pypi ×1
pytorch ×1
tensorboard ×1
tensorflow ×1