Python安装setup.py,明明有文件却提示文件不存在?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python安装setup.py,明明有文件却提示文件不存在?相关的知识,希望对你有一定的参考价值。

如图,安装的是robotframework-ride,进入文件目录,输入python setup.py install,结果安装失败。有没有大佬告知原因?
提示信息如下:
Traceback (most recent call last):
File "setup.py", line 50, in <module>
with open(join(ROOT_DIR, 'requirements.txt')) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\personal\\Desktop\\robotframework-ride-1.7.3.1\\requirements.txt'

你好:
_init_.py,是要想让一个文件夹成为包的必须的文件!这个文件可以为空,但是必须得有!
setup.py,是用来安装模块用的,dos命令下!
参考技术A 缺少requirements.txt
requirements.txt 这个文件是列举你这个项目引用了哪些非本项目的依赖的
就是说你安装的可能需要先安装其他的依赖,推荐还是用pip来安装吧追问

pip下载速度太慢了,几kb或者根本不动

追答

换4g热点或者找个代理吧

本回答被提问者采纳

在 setup.py 或 pip 需求文件中,如何控制安装包依赖项的顺序?

【中文标题】在 setup.py 或 pip 需求文件中,如何控制安装包依赖项的顺序?【英文标题】:In setup.py or pip requirements file, how to control order of installing package dependencies? 【发布时间】:2011-06-27 03:56:52 【问题描述】:

我有一个 Python 包,它的 setup.py 具有通过通常方式在 install_requires=[...] 中声明的依赖项。那里的一个包 scikits.timeseries 有一个 setup.py 期望已经安装了 numpy,因此,我想先安装 numpy。对于这种情况和一般情况,可以控制依赖安装的顺序吗?如何?

目前 setup.py 下拉依赖项的顺序(如 arg install_requires 中列出的)实际上是随机的。另外,在 setup.py setup(...) 我尝试使用 arg:

extras_require='scikits.timeseries': ['numpy']

...没有成功,安装依赖的顺序不受影响。

我也尝试设置一个 pip 需求文件,但是 pip 安装依赖项的顺序与需求文件的行顺序不匹配,所以没有运气。

另一种可能性是在 setup.py 顶部附近有一个系统调用,在 setup(...) 调用之前安装 numpy,但我希望有更好的方法。提前感谢您的帮助。

【问题讨论】:

对于遇到此问题的人。 This 是 numpy 不作为依赖项包含的原因。 【参考方案1】:

如果scikits.timeseries 需要numpy,那么它应该将其声明为依赖项。如果是这样,那么pip 会为你处理事情(我很确定setuptools 也会,但我已经很长时间没有使用它了)。如果你控制scikits.timeseries,那么你应该修复它的依赖声明。

【讨论】:

有道理,谢谢。我不控制那个代码库,但我会分叉它。 :) 很高兴在您的回答中提及为什么 scikit 没有将其作为显式依赖:github.com/scikit-learn/scikit-learn/issues/2569 @CharlieParker 当我回答这个问题时,这个讨论并不存在。 这似乎不是真的。我安装了一个库,父子都声明了相同的依赖项,并且顺序仍然是随机的!子库无法​​安装,因为缺少它的要求。设置功能在不同环境中随机工作/失败。【参考方案2】:

使用setup_requires参数,例如先安装numpy scipy 放入setup_requires并添加__builtins__.__NUMPY_SETUP__ = False钩子以正确安装numpy:

setup(
    name='test',
    version='0.1',
    setup_requires=['numpy'],
    install_requires=['scipy']
)

def run(self):
    __builtins__.__NUMPY_SETUP__ = False
    import numpy

【讨论】:

这不起作用。看起来它应该瞥一眼源代码,但事实并非如此。阅读文档,它说这将首先下载它,但不会先安装它。【参考方案3】:

这是一个实际可行的解决方案。这不是不得不诉诸的过于“愉快”的方法,而是“绝望的时候……”。

基本上,您必须:

覆盖 setuptools“安装命令”类(加上密切相关的类似物) 通过命令行语句从脚本执行 pip,您可以对其执行命令

这样做的缺点是:

必须安装 Pip。你不能在没有它的环境中执行setup.py。 初始“先决条件”安装的控制台输出由于某些奇怪的原因没有出现。 (也许我会在此处发布更新以解决此问题...)

代码:

from setuptools import setup

# Override standard setuptools commands. 
# Enforce the order of dependency installation.
#-------------------------------------------------
PREREQS = [ "ORDERED-INSTALL-PACKAGE" ]

from setuptools.command.install import install
from setuptools.command.develop import develop
from setuptools.command.egg_info import egg_info

def requires( packages ): 
    from os import system
    from sys import executable as PYTHON_PATH
    from pkg_resources import require
    require( "pip" )
    CMD_TMPLT = '"' + PYTHON_PATH + '" -m pip install %s'
    for pkg in packages: system( CMD_TMPLT % (pkg,) )       

class OrderedInstall( install ):
    def run( self ):
        requires( PREREQS )
        install.run( self )        

class OrderedDevelop( develop ):
    def run( self ):
        requires( PREREQS )
        develop.run( self )        

class OrderedEggInfo( egg_info ):
    def run( self ):
        requires( PREREQS )
        egg_info.run( self )        

CMD_CLASSES =  
     "install" : OrderedInstall
   , "develop" : OrderedDevelop
   , "egg_info": OrderedEggInfo 
        
#-------------------------------------------------

setup ( 
     ...
    install_requires = [ "UNORDERED-INSTALL-PACKAGE" ],
    cmdclass = CMD_CLASSES
)

【讨论】:

【参考方案4】:

您可以将 numpy 添加到 setup_requires 部分:

setup_requires=['numpy'],

【讨论】:

我确实有它,但它似乎仍然是一个问题,因为当它导入 numpy 时它似乎吓坏了,或者它在安装 scipy 之前没有安装它。我的要求如下:install_requires=['numpy','namespaces','pdb','scikit-learn','scipy']

以上是关于Python安装setup.py,明明有文件却提示文件不存在?的主要内容,如果未能解决你的问题,请参考以下文章

运行命令 python setup.py install 总是出现下面错误(见截图)

解决pip安装pygame提示python setup.py egg_info did not run successfully.│ exit code: 1错误

运行命令 python setup.py install 总是出现下面错误是怎么回事?

如何安装ipython notebook

没有 sudo 的 python setup.py 安装

python的构建工具——setup.py文件