标签: distutils

使用Python中的distutils自动查找包

当在描述一个Python包setup.pydistutilsPython中,是有办法使它所以自动获得每一个有一个目录__init__.py中,并包含一个子包?

即如果结构是:

mypackage/__init__.py
mypackage/a/__init__.py
mypackage/b/__init__.py
Run Code Online (Sandbox Code Playgroud)

我想避免这样做:

packages = ['mypackage', 'mypackage.a', 'mypackage.b']
Run Code Online (Sandbox Code Playgroud)

而只是做:

packages = ['mypackage']
Run Code Online (Sandbox Code Playgroud)

让它自动找到类似的东西a,b因为它们有一个init文件.谢谢.

python distutils setup.py

46
推荐指数
3
解决办法
2万
查看次数

如何将easy_install指向vcvarsall.bat?

我已经安装了MSVC++ 2010 Express,而我的vcvarsall.bat文件C:\Program Files\Microsoft Visual Studio 10.0\VC位于我的系统PATH中.当我运行时easy_install,它找不到vcvarsall.bat.

我需要在distutils.cfg文件中设置一些东西来指向我的MSVC++安装吗?

G:\>easy_install hg-git
install_dir C:\Python26\Lib\site-packages\
Searching for hg-git
Best match: hg-git 0.2.6
Processing hg_git-0.2.6-py2.6.egg
hg-git 0.2.6 is already the active version in easy-install.pth

Using c:\python26\lib\site-packages\hg_git-0.2.6-py2.6.egg
Processing dependencies for hg-git
Searching for dulwich>=0.6.0
Reading http://pypi.python.org/simple/dulwich/
Reading http://samba.org/~jelmer/dulwich
Reading http://launchpad.net/dulwich
Best match: dulwich 0.7.1
Downloading http://www.samba.org/~jelmer/dulwich/dulwich-0.7.1.tar.gz
Processing dulwich-0.7.1.tar.gz
Running dulwich-0.7.1\setup.py -q bdist_egg --dist-dir c:\docume~1\mlin\locals~1
\temp\easy_install-fhraep\dulwich-0.7.1\egg-dist-tmp-qozily
error: Setup script exited with error: Unable to find vcvarsall.bat
Run Code Online (Sandbox Code Playgroud)

python distutils visual-studio-2010 easy-install

45
推荐指数
1
解决办法
8万
查看次数

管理Python项目中的资源

我有一个Python项目,其中我使用了许多非代码文件.目前这些都是图像,但我将来可能会使用其他类型的文件.什么是存储和引用这些文件的好方案?

我考虑在主目录中创建一个文件夹"resources",但是有一个问题; 有些图像是从我项目的子包中使用的.以这种方式存储这些图像会导致耦合,这是一个缺点.

另外,我需要一种方法来访问这些文件,这些文件与我当前的目录无关.

python resources distutils setuptools decoupling

44
推荐指数
3
解决办法
3万
查看次数

清理setup.py中的构建目录

我如何进行setup.py预删除和删除后的构建目录?

python distutils build

43
推荐指数
4
解决办法
4万
查看次数

AttributeError:模块“setuptools._distutils”没有属性“version”

我试图使用张量板训练模型。执行时,我收到此错误:

$ python train.py 
Traceback (most recent call last):
  File "train.py", line 6, in <module>
    from torch.utils.tensorboard import SummaryWriter  
  File "C:\Users\91960\AppData\Local\Programs\Python\Python38\lib\site-packages\torch\utils\tensorboard\__init__.py", line 4, in <module>
    LooseVersion = distutils.version.LooseVersion 

AttributeError: module 'setuptools._distutils' has no attribute 'version'.
Run Code Online (Sandbox Code Playgroud)

我正在使用 python 3.8.9 64 位和张量流,并且已经安装了张量板所需的 distutils。

为什么会发生这种情况?

python distutils tensorflow tensorboard

43
推荐指数
2
解决办法
6万
查看次数

让distutils在正确的位置查找numpy头文件

在我的安装中,numpy arrayobject.h位于…/site-packages/numpy/core/include/numpy/arrayobject.h.我写了一个使用numpy的简单Cython脚本:

cimport numpy as np

def say_hello_to(name):
    print("Hello %s!" % name)
Run Code Online (Sandbox Code Playgroud)

我也有以下distutils setup.py(从Cython用户指南复制):

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

ext_modules = [Extension("hello", ["hello.pyx"])]

setup(
  name = 'Hello world app',
  cmdclass = {'build_ext': build_ext},
  ext_modules = ext_modules
)
Run Code Online (Sandbox Code Playgroud)

当我尝试构建时python setup.py build_ext --inplace,Cython尝试执行以下操作:

gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd \
-fno-common -dynamic -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DMACOSX \
-I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe \
-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 …
Run Code Online (Sandbox Code Playgroud)

python distutils numpy cython

42
推荐指数
2
解决办法
2万
查看次数

在Python开发中使用共享模块的正确方法是什么?

我正在努力将Python作为我团队开发工具套件的一部分.使用我们使用的其他语言/工具,我们开发了许多可重用的函数和类,这些函数和类特定于我们的工作.这标准化了我们做事的方式,并节省了大量的车轮重新发明.

我似乎无法找到通常用Python处理它的任何示例.现在我在本地驱动器上有一个开发文件夹,下面有多个项目文件夹,还有一个包含可重复使用的类和函数的包和模块的附加"公共"文件夹.这些"通用"模块由多个项目中的模块导入.

Development/
    Common/
        Package_a/
        Package_b/
    Project1/
        Package1_1/
        Package1_2/
    Project2/
        Package2_1/
        Package2_2/
Run Code Online (Sandbox Code Playgroud)

在尝试学习如何分发Python应用程序时,似乎假设所有引用的包都低于顶级项目文件夹,而不是它的附属物.我还想到,也许正确的方法是在单独的项目中开发通用/框架模块,并且经过测试,通过安装到site-packages文件夹将它们部署到每个开发人员的环境中.然而,这也引发了重新分配的问题.

任何人都可以阐明这一点,或者指出我讨论这个问题的资源?

python distutils python-3.x

42
推荐指数
3
解决办法
2万
查看次数

pip 10和apt:如何避免distutils包的"无法卸载X"错误

我正在处理遗留的Dockerfile.这是我正在处理的非常简化的版本:

FROM ubuntu:14.04

RUN apt-get -y update && apt-get -y install \
    python-pip \
    python-numpy # ...and many other packages

RUN pip install -U pip

RUN pip install -r /tmp/requirements1.txt # includes e.g., numpy==1.13.0
RUN pip install -r /tmp/requirements2.txt
RUN pip install -r /tmp/requirements3.txt
Run Code Online (Sandbox Code Playgroud)

首先,使用安装几个软件包apt,然后使用安装几个软件包pip.pip版本10已经发布,部分版本是这个新限制:

删除了对卸载使用distutils安装的项目的支持.distutils安装的项目不包括指示哪些文件属于该安装的元数据,因此实际卸载它们是不可能的,而不是仅删除表示已安装的元数据,同时保留所有实际文件.

这导致我的设置中出现以下问题.例如,首先apt安装python-numpy.后来pip尝试安装新版本的numpy从如/tmp/requirements1.txt,并试图卸载旧版本,但由于新的限制,它无法删除此版本:

Installing collected packages: numpy
  Found existing installation: numpy 1.8.2
Cannot uninstall 'numpy'. It …
Run Code Online (Sandbox Code Playgroud)

python apt distutils pip docker

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

没有名为 distutils 的模块....但已安装 distutils?

我想升级我的 python 版本(在本例中升级到 3.10),因此在安装 python3.10 之后,我继续尝试添加一些我使用的模块,例如 opencv ,这遇到了:

jeremy@jeremy-Blade:~$ python3.10 -m pip install opencv-python 
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3/dist-packages/pip/__main__.py", line 16, in <module>
    from pip._internal.cli.main import main as _main  # isort:skip # noqa
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 10, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/autocompletion.py", line 9, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3/dist-packages/pip/_internal/cli/main_parser.py", line 7, in <module>
    from …
Run Code Online (Sandbox Code Playgroud)

python distutils python-3.x

40
推荐指数
5
解决办法
13万
查看次数

install_requires基于python版本

我有一个模块可以在python 2和python 3上工作.在Python <3.2中我想安装一个特定的包作为依赖.对于Python> = 3.2.

就像是:

 install_requires=[
    "threadpool >= 1.2.7 if python_version < 3.2.0",
 ],
Run Code Online (Sandbox Code Playgroud)

怎么能做到这一点?

python distutils setuptools distribute install-requires

39
推荐指数
2
解决办法
9137
查看次数