Error while constructing custom Anaconda installer on Windows

蹲街弑〆低调 提交于 2019-12-13 03:57:07

问题


I am creating a custom Anaconda installer on Windows 10 64bit. I have created construct.yaml like :

name : TensorFlowEnv
version : 1.0.0
specs :
   - numpy
channels :
   - https://conda.anaconda.org/anaconda/win-64

After running the construcor command , I am getting the following error

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

The error is :

TypeError: write() argument must be str, not None

Any help would be appreciated.


回答1:


I had this error and resolved it. First the steps taken to get this error:

I was using a local conda server. I had gone into /envs/someenv/conda-bld and ran 'python -m http.server' in there, after doing a 'conda index .' in that folder. Which works. And in my construct.yaml I had 'http://localhost:8000' as a channel. This worked until I updated my conda package to a later version. It would not update in that conda channel.

Now the steps to resolve the error:

I did a 'conda clean -i', then manually had to delete all the repodata.json and index.html in that build folder. And deleted all the cache folders. And also in the win64 folde.r Then I did 'conda index .' and the index files and repodata generated where then all correct. Then once that was done I did conda construct again and the installer works.

Note I have to force 'conda install conda=4.5.13 constructor=2.3.0' and NOT use constructor v3 and some later versions of conda as they build installers that look right but have missing files.



来源:https://stackoverflow.com/questions/54688432/error-while-constructing-custom-anaconda-installer-on-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!