简体   繁体   中英

Error while constructing custom Anaconda installer on Windows

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM