我在安装psycopg2时遇到问题.我尝试以下时出现以下错误pip install psycopg2:
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/psycopg2
Run Code Online (Sandbox Code Playgroud)
但问题pg_config实际上是在我的PATH; 它运行没有任何问题:
$ which pg_config
/usr/pgsql-9.1/bin/pg_config
Run Code Online (Sandbox Code Playgroud)
我尝试将pg_config路径添加到该setup.cfg文件并使用我从其网站(http://initd.org/psycopg/)下载的源文件构建它,我收到以下错误消息!
Error: Unable to find 'pg_config' file in '/usr/pgsql-9.1/bin/'
Run Code Online (Sandbox Code Playgroud)
但实际上它就是!!!
我对这些错误感到困惑.有人可以帮忙吗?
顺便说一句,我 …
我开始使用Python.我已经添加了requirements.txt和setup.py我的项目.但是,我仍然对这两个文件的目的感到困惑.我读过这setup.py是为可再发行的东西而requirements.txt设计的,它是为不可再发行的东西而设计的.但我不确定这是否准确.
这两个文件真的打算如何使用?
该选项-e或--editable选项何时有用pip install?
对于某些项目,requirements.txt中的最后一行是-e ..它究竟做了什么?
我正在尝试制作一个我想在pip install .本地安装的python包.包名称列在pip freeze但import <package>导致错误No module named <package>.site-packages文件夹也只包含dist-info文件夹.find_packages()能够找到包裹.我错过了什么?
import io
import os
import sys
from shutil import rmtree
from setuptools import find_packages, setup, Command
# Package meta-data.
NAME = '<package>'
DESCRIPTION = 'description'
URL = ''
EMAIL = 'email'
AUTHOR = 'name'
# What packages are required for this module to be executed?
REQUIRED = [
# 'requests', 'maya', 'records',
]
# The rest you shouldn't have to touch too …Run Code Online (Sandbox Code Playgroud) 我想为 CPython 构建一个 C 扩展。我可以按照传统方式使用setup.py文件来完成此操作。然而,由于 PEP 517 中提到的原因,我更喜欢使用pyproject.toml. 据我所知,这setuptools是唯一可以在所有相关平台上构建 C 扩展的构建后端。事实上,我不知道有任何后端能够与过时的distutils.
在此背景下,常见的情况setup.py如下所示:
from setuptools import setup, Extension
kwargs = dict(
name='mypackage',
# more metadata
ext_modules=[
Extension('mypackage.mymodule', ['lib/mymodule.c',
'lib/mypackage.c',
'lib/myalloc.c'],
include_dirs=['lib'],
py_limited_api=True)])
setup(**kwargs)
Run Code Online (Sandbox Code Playgroud)
现在,挑战是将以上内容放入 a pyproject.tomlplus a中setup.cfg。
文档setuptools建议pyproject.toml如下:
[build-system]
requires = [
"setuptools >=52.0",
'wheel >= 0.36']
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)
看
此外,实际的元数据应该进入setup.cfg. 但是,我还没有找到任何关于如何将ext_moduleskwarg(特别Extension()是调用)转换为setup.cfg语法的解释。
我用C++编写了一个Python扩展模块.我打算用setuptools分发模块.将有用于32位和64位Windows(内置setup.py bdist_egg)的二进制发行版和用于类UNIX平台(内置setup.py sdist)的源代码发行版.
我打算根据BSD许可证授权该模块.在我的源代码树中,文件LICENSE.txt与setup.py一起位于顶层文件夹中.我应该如何将其包含在安装包中?
我尝试了以下setup.py脚本:
from setuptools import setup, Extension
from glob import glob
setup(
name = 'Foo',
version = '0.1.0',
ext_modules = [Extension('Foo', glob('Source/*.cpp'))],
package_data = {'': ['LICENSE.txt']}
)
Run Code Online (Sandbox Code Playgroud)
它不起作用,许可证文件不包含在安装包中.也许是因为setup.py文件没有定义任何包,只有一个扩展模块.
我该如何解决?
我应该仅使用 pyproject.toml 还是将其与 setup.py 和 setup.cfg 一起使用?或者也许是它们的其他组合。
我找不到这个问题的任何明确答案,所以如果有人能够启发这个问题,我会很高兴。
如何直接 pip 查找setup.py?我的setup.py文件位于~/setuptools-3.5.1.
我跑了
dustin@dustin:~$ python setuptools-3.5.1/setup.py egg_info
running egg_info
writing requirements to setuptools.egg-info/requires.txt
writing setuptools.egg-info/PKG-INFO
writing top-level names to setuptools.egg-info/top_level.txt
writing dependency_links to setuptools.egg-info/dependency_links.txt
writing entry points to setuptools.egg-info/entry_points.txt
reading manifest file 'setuptools.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'setuptools.egg-info/SOURCES.txt'
dustin@dustin:~$
Run Code Online (Sandbox Code Playgroud)
所以看起来一切都很好,但是当我运行 pip 时,我得到
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/matplotlib
Storing debug log for failure in /home/dustin/.pip/pip.log
Run Code Online (Sandbox Code Playgroud)
我的印象是,当我运行 pip 时,它没有找到setup.py