Anaconda Python Conda pipbuild失败,出现WindowsError cannot find fi

2024-06-08 13:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近切换到了Anaconda Python发行版,我正在尝试掌握窍门。我想安装this yaml-related package,由于还没有conda方法,所以我尝试了

conda pipbuild layered-yaml-attrdict-config

这导致了以下输出(我删除了系统路径中不相关的条目):

^{pr2}$

我不知道发生了什么,因为我不知道它在找什么文件,我也不知道康达食谱的任何东西,除了它们应该是很棒的,不会给这些错误。在

我希望通过conda安装,这样一切都可以由conda管理,而不是一些东西由pip管理。在

深入研究main_pipbuild.py源代码,它似乎在尝试运行C:\Anaconda\envs\_pipbuild_\bin\pip install package==version(使用适当的包和版本)。当我看到我的C:\Anaconda\envs_pipbuild_2;没有bin文件夹,所以我猜pip没有正确安装到pipbuild环境中。之前关于没有“补丁”的警告也可能是个问题。。。在

在用conda install patch安装patch后,我再次尝试,结果如下:

C:\Anaconda>conda pipbuild layered-yaml-attrdict-config
Fetching package metadata: ..
Creating standard recipe for layered-yaml-attrdict-config-14.06.7
Using url https://pypi.python.org/packages/source/l/layered-yaml-attrdict-config/layered-yaml-attrdict-config-14.06.7.ta
r.gz (6147) for layered-yaml-attrdict-config.
Downloading layered-yaml-attrdict-config (use --no-download to skip this step)
Unpacking layered-yaml-attrdict-config...
done
working in c:\users\bnables\appdata\local\temp\1\tmp7cuibgconda_skeleton_layered-yaml-attrdict-config
Fetching package metadata: ...
Solving package specifications: .69 unparsed bytes left at the end of stream
file 1/1:        core.py
 hunk no.1 doesn't match source file at line 165
  expected:
  actual  :                 raise SystemExit, "error: " + str(msg)
source file is different - core.py

Applying patch: u'c:\\users\\bnables\\appdata\\local\\temp\\1\\tmp7cuibgconda_skeleton_layered-yaml-attrdict-config\\pyp
i-distutils.patch'
Traceback (most recent call last):
  File "C:\Anaconda\Scripts\conda-skeleton-script.py", line 4, in <module>
    sys.exit(main())
  File "C:\Anaconda\lib\site-packages\conda_build\main_skeleton.py", line 124, in main
    args.func(args, p)
  File "C:\Anaconda\lib\site-packages\conda_build\main_skeleton.py", line 135, in execute
    pypi.main(args, parser)
  File "C:\Anaconda\lib\site-packages\conda_build\pypi.py", line 314, in main
    run_setuppy(src_dir, tempdir, args)
  File "C:\Anaconda\lib\site-packages\conda_build\pypi.py", line 485, in run_setuppy
    apply_patch(join(stdlib_dir, 'distutils'), patch)
  File "C:\Anaconda\lib\site-packages\conda_build\source.py", line 202, in apply_patch
    check_call([patch, '-p0', '-i', path], cwd=src_dir)
  File "C:\Anaconda\lib\subprocess.py", line 540, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '[u'C:\\Anaconda\\Scripts\\patch.bat', u'-p0', u'-i', u'c:\\users\\bnables\\appda
ta\\local\\temp\\1\\tmp7cuibgconda_skeleton_layered-yaml-attrdict-config\\pypi-distutils.patch']' returned non-zero exit
 status -1

conda create -n _pipbuild_ --yes python pip
Error: prefix already exists: C:\Anaconda\envs\_pipbuild_
C:\Anaconda\envs\_pipbuild_/bin/pip install layered-yaml-attrdict-config==14.06.7
Traceback (most recent call last):
  File "C:\Anaconda\Scripts\conda-pipbuild-script.py", line 4, in <module>
    sys.exit(main())
  File "C:\Anaconda\lib\site-packages\conda_build\main_pipbuild.py", line 76, in main
    args.func(args, p)
  File "C:\Anaconda\lib\site-packages\conda_build\main_pipbuild.py", line 347, in execute
    build_package(package, version)
  File "C:\Anaconda\lib\site-packages\conda_build\main_pipbuild.py", line 300, in build_package
    directory, dependencies = make_recipe(package, version)
  File "C:\Anaconda\lib\site-packages\conda_build\main_pipbuild.py", line 244, in make_recipe
    depends = get_all_dependencies(package, version)
  File "C:\Anaconda\lib\site-packages\conda_build\main_pipbuild.py", line 214, in get_all_dependencies
    ret = subprocess.Popen(cmd2.split()).wait()
  File "C:\Anaconda\lib\subprocess.py", line 710, in __init__
    errread, errwrite)
  File "C:\Anaconda\lib\subprocess.py", line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

所以它发现了一些包的问题,可能在Solving package specifications: .69 unparsed bytes left at the end of stream。然后它做了一个补丁,显然失败了。{pipm>再次尝试在中建立环境。在

它应该在C:\Anaconda\envs\_pipbuild_\Scripts\pip.exe处寻找pip吗?这确实存在是因为。在

如果这是一个bug,可以在这里报告它:https://github.com/conda/conda-build/issues。我会在做更多事情之前等待反馈。在

任何帮助都太好了!在


Tags: inpybuildconfigyamlpackagemainlib
2条回答

当我试图用“conda pipbuild package name”构建PyPI包时,也遇到过类似的问题,我无法让它在windows7(x64)上运行。我发现的一个有用的解决方法(如果您想将带有“conda install package name”的包安装到特定的conda环境中),如下所示:

  • 使用“pip Install package name”安装PyPI包
  • 使用“binstar Upload%conda_install_path%/pkgs/package-name-ver-py27”将包上载到您的binstar帐户。焦油bz2““
  • 使用“conda Install-chttps://conda.binstar.org/user-namepackage name-p%path to conda env%”将包安装到特定的conda env中

python3上的https://groups.google.com/a/continuum.io/d/msg/anaconda/6_reeaIjx5c/fhRjbA4AdQkJ上有相同问题的修复程序。它包括编辑区域\cygwincompiler.pyPython标准库中的文件。在

我认为您可以在Python2中做同样的事情,尽管它可能需要一些翻译,因为Python2版本的cygwinccompiler使用os.popen而不是{}。假设您只需在文件中的相关位置使用subprocess.check_output(['gcc', '-dumpmachine'], shell=True),它将解决问题。在

相关问题 更多 >