我正在Windows 10 64bit上创建自定义的Anaconda安装程序。我创建了construct.yaml
,如:
name : TensorFlowEnv
version : 1.0.0
specs :
- numpy
channels :
- https://conda.anaconda.org/anaconda/win-64
运行construcor
命令后,出现以下错误
platform: win-64
Collecting package metadata: done
Solving environment: done
Checking for duplicate files ...
Checking for 'C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\NSIS\makensis.exe'
NSIS version: v3.01
Traceback (most recent call last):
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\Scripts\constructor-script.py", line 10, in <module>
sys.exit(main())
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\lib\site-packages\constructor\main.py", line 221, in main
dry_run=opts.dry_run)
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\lib\site-packages\constructor\main.py", line 128, in main_build
create(info, verbose=verbose)
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\lib\site-packages\constructor\winexe.py", line 218, in create
preconda_write_files(info, tmp_dir)
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\lib\site-packages\constructor\preconda.py", line 135, in write_files
write_index_cache(info, dst_dir)
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\lib\site-packages\constructor\preconda.py", line 40, in write_index_cache
write_repodata(cache_dir, url)
File "C:\Users\Equip\Anaconda3\envs\TensorFlowEnv\lib\site-packages\constructor\conda_interface.py", line 61, in write_repodata
fh.write(raw_repodata_str)
TypeError: write() argument must be str, not None
错误是:
TypeError:write()参数必须为str,而不是None
任何帮助将不胜感激。
答案 0 :(得分:0)
我遇到此错误并解决了。首先,采取步骤来获取此错误:
我正在使用本地conda服务器。在执行“ conda索引”之后,我进入/ envs / someenv / conda-bld并在其中运行“ python -m http.server”。在那个文件夹中。哪个有效。在我的Construct.yaml中,我使用了“ http://localhost:8000”作为频道。这一直有效,直到我将conda软件包更新为更高版本。它不会在该conda频道中更新。
现在要解决该错误的步骤:
我做了一个'conda clean -i',然后必须手动删除该build文件夹中的所有repodata.json和index.html。并删除所有缓存文件夹。然后在win64 folde.r中,我做了'conda index'。然后生成索引文件和repodata,然后全部正确。然后,一旦完成,我就再次进行了conda构建,安装程序开始工作。
请注意,我必须强制执行'conda install conda = 4.5.13 Constructor = 2.3.0',并且不要使用构造函数v3和更高版本的conda,因为它们会生成看起来正确但缺少文件的安装程序。