标签: python-packaging

我可以将自定义数据添加到 pyproject.toml 文件中吗

我正在使用toml包来读取我的pyproject.toml文件。我想添加自定义数据,在本例中我将在docs/conf.py文件中读取这些数据。当我尝试添加自定义部分时,我从Vs Code 中的Even Better TOML扩展中收到错误和警告,指出不允许我的自定义数据。

示例 TOML 部分位于pyproject.toml

[custom.metadata]
docs_name = "GUI Automation for windows"
docs_author = "myname"
docs_copyright = "2023"
docs_url= "https://someurl.readthedocs.io/en/latest/"
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:是否有一种有效的方法将自定义数据添加到pyproject.toml文件中?

python toml python-packaging pyproject.toml

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

Pip不知道numpy安装在哪里

正在尝试卸载numpy. 我试过了pip uninstall numpy。它告诉我它没有安装。但是,numpy仍然安装在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy.

如何确保pip找到numpy包裹?

python numpy pip python-2.7 python-packaging

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

在Python中,是否可以在包级别公开子包中的模块?

我有以下难题.我试图在父包级别公开包的子包中的一些模块.

文件夹结构基本上是这样的:

script.py
package/
    __init__.py
    module1.py
    subpackage/
        __init__.py
        submodule1.py
        submodule2.py
Run Code Online (Sandbox Code Playgroud)

script.py我目前要编写的文件中

from package.subpackage.submodule1 import foo
Run Code Online (Sandbox Code Playgroud)

如果我想从导入一些submodule1.py文件,但我希望能够揭露文件submodule1.pysubmodule2.py在封装级,让我所有的进口可以看起来像

from package.module1 import bar
from package.submodule1 import foo
from package.submodule2 import goo
Run Code Online (Sandbox Code Playgroud)

请注意,我不希望暴露bar,foogoopackage水平,即

from package import bar
from package import foo
Run Code Online (Sandbox Code Playgroud)

因为在我的情况下,模块之间的分离仍然很重要.

这甚至可能吗?__init__.py文件中有诀窍吗?

谢谢!

python python-import python-2.7 python-packaging

4
推荐指数
2
解决办法
2370
查看次数

如何让 pip 递归地搜索目录中的包和依赖项?

pip 是否能够递归搜索文件系统路径并安装包及其依赖项?例如,给定以下文件结构(文件未显示)pip install packageA -f C:\packages\不起作用。

C:\packages\
C:\packages\packageA\
C:\packages\packageA\1.0.0
C:\packages\packageA\1.0.1

C:\packages\packageB\
C:\packages\packageB\2.2.1
C:\packages\packageB\2.2.4
Run Code Online (Sandbox Code Playgroud)

此外,这些包可以是带有 setup.py 文件的纯源吗?或者它们是否需要是像wheel 或zip 文件这样的二进制文件。最后,有没有办法解决依赖关系?例如,如果 packageA 需要 packageB 的版本,pip 可以从我的文件夹中获取该版本的 packageB 吗?我是否需要 html 文件来指示事物的位置和内容?

我知道我可以将 pip 直接指向本地路径 ( pip install C:\packages\packageA\1.0.0),但我希望它能够像 PyPI 中提供包一样运行。例如,如果用户键入pip install packageB或 ,pip install requirements.txt并且该需求文件包含本地存在但 PyPI 中不存在的包,那么它就会起作用。(我可以在配置文件中设置本地包存储路径,这样 pip 命令就不需要 -f 参数)

基本上,我想使用没有网络服务器的文件系统来复制 PyPI 功能(安全性不允许我们运行一个)。任何见解将不胜感激。

python pip pypi python-wheel python-packaging

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

Pipfiles 解析器(获取 Pipfile 中使用的所有包的列表)

是否有任何解析器可以读取 Pipfile 并返回 Pipfile 中使用的所有包的列表?

如果没有,该怎么办呢?我认为正则表达式可以完成这项工作,但我对 Pipfiles 的结构还不够熟悉,无法确认情况确实如此。

python pip python-packaging pipfile

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

如何制作 pip 安装包数据(配置文件)?

我有一个名为clanaGithubPyPI)的包,其结构如下:

.
??? clana
?   ??? cli.py
?   ??? config.yaml
?   ??? __init__.py
?   ??? utils.py
?   ??? visualize_predictions.py
??? docs/
??? setup.cfg
??? setup.py
??? tests/
??? tox.ini
Run Code Online (Sandbox Code Playgroud)

setup.py 看起来像这样:

from setuptools import find_packages
from setuptools import setup

requires_tests = [...]

install_requires = [...]


config = {
    "name": "clana",
    "version": "0.3.6",
    "author": "Martin Thoma",
    "author_email": "info@martin-thoma.de",
    "maintainer": "Martin Thoma",
    "maintainer_email": "info@martin-thoma.de",
    "packages": find_packages(),
    "entry_points": {"console_scripts": ["clana=clana.cli:entry_point"]},
    "install_requires": install_requires,
    "tests_require": requires_tests,
    "package_data": {"clana": ["clana/config.yaml"]}, …
Run Code Online (Sandbox Code Playgroud)

python setuptools python-3.x python-packaging

4
推荐指数
2
解决办法
2474
查看次数

使用入口点console_script进行Python包分发

我准备部署一个具有以下布局的 Python 包:

MyPackage/
  setup.py
  MyPackage/
    __init__.py
    __main__.py
    lib/
      __init__.py
      utils.py
    db/
      __init__.py
      db1.py
      db2.py 
    tasks/
      __init__.py
      something.py
Run Code Online (Sandbox Code Playgroud)

其中setup.py包含:

setup(name = MyPackage,
      ...
      packages = find_packages(),
      include_package_data = True,
      entry_points = {"console_scripts" : [
          "do_something = MyPackage.__main__:main"
      ]})
Run Code Online (Sandbox Code Playgroud)

__main__.py包含:

import tasks.something as something

something.my_function()
Run Code Online (Sandbox Code Playgroud)

something模块包含:

import db.db1 as db1
import db.db2 as db2

def my_function():
  db1.this_func(...)
  db2.that_func(...)
Run Code Online (Sandbox Code Playgroud)

db1包含:

import sqlalchemy
import lib.utils as utils

def this_func(...):
  sqlalchemy.create_engine(...)
Run Code Online (Sandbox Code Playgroud)

db2包含:

import sqlalchemy
import lib.utils as …
Run Code Online (Sandbox Code Playgroud)

python setuptools python-3.x python-packaging

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

pip 依赖项可以排除或包含在语义预发布标签中吗?

我的开发人员希望能够将库发布为“测试版”或“发布版”。

IE:

1.2.3-beta 1.2.3

在消费项目中,他们无法给我任何关于何时想要使用betarelease包的具体标准。我们有 CI,但没有任何明确的“何时”,我无法支持两个单独的点馈送,因为它们可能会失败。因此,我建议利用需求文件中的版本范围语法,这样他们就可以在签入期间指定他们想要的内容。他们从来没有做过这样的事情,而我基本上是一个Python菜鸟。是否可以过滤预发布标签?IE

lib == 1.*.*-*beta包裹吗?

lib == 1.*.*, !=1.*.*-*提取release包裹并确保排除任何beta包裹吗?

我会自己尝试我的理论,但我对 python 不太了解,无法在本地模拟某种示例库,而且他们太忙了,无法研究它。

python pip pypi requirements.txt python-packaging

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

有没有办法在python中获取目录包依赖关系?

我知道它pip freeze > requirements.txt存在,但它会打印出我的系统包,其中只有我的目录/项目需要的几个。

我没有使用 a virtualenv,所以我很确定我无法打印出这样的本地包。

我也知道pipdeptree存在,但我也不知道这如何解决我的问题?

python pip python-packaging

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

从 git commit/revision id 安装 pipelinev/pip

我想从 git 存储库安装一个包,并使用 pipelinenv 指定提交 ID(我相信如果我使用 pip,它应该非常相似)

到目前为止我尝试过:

pipenv install "git+ssh://git@bitbucket.org/<username>/<repository>.git/<commit_id>#egg=mypackage"

将以下行附加到 Pipfile 并且没有错误

<package-name> = {git = "ssh://git@bitbucket.org/<username>/<repository>.git/<commit_id>"}

如果我导入该包,import mypackage它会检测到它,但缺少其依赖项。

mypackage的 setup.py看起来像;

import setuptools

with open("README.md", "r") as readme:
    long_description = readme.read()
with open("./requirements.txt", "r") as fh:
requirements = fh.readlines()

setuptools.setup(
    name='mypackage',
    url='https://bitbucket.org/<username>/<repositroy>',
    packages=setuptools.find_packages(),
    install_requires=[req for req in requirements if req[0] not in ["#", "-"]],
Run Code Online (Sandbox Code Playgroud)

dependencies pip python-packaging pipenv pipfile

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