fairseq: pip install on Windows gives permission errors accessing a temp folder through an Admin console

๐Ÿ› Bug

pip install [-U [--force-reinstall]] fairseq currently gives PermissionError: [WinError 5] Access is denied: 'fairseq\\examples'. I have 0.9 installed, and trying to install 0.10.

To Reproduce

Steps to reproduce the behavior (always include the command you ran):

  1. Open an admin console.
  2. Run cmd pip install -U fairseq
  3. See error. fairseq/examples is under:
cwd: $HOME\AppData\Local\Temp\pip-install-18nls8px\fairseq

Stack trace: <detail>

  ERROR: Command errored out with exit status 1:
   command: '$HOME\AppData\Local\Continuum\anaconda3\envs\dev\python.exe' '$HOME\AppData\Local\Continuum\anaconda3\envs\dev\lib\site-packages\pip\_vendor\pep517\_in_process.py' get_requires_for_build_wheel '$HOME\AppData\Local\Temp\tmpprijkq_f'
       cwd: $HOME\AppData\Local\Temp\pip-install-18nls8px\fairseq
  Complete output (31 lines):
  Traceback (most recent call last):
    File "setup.py", line 214, in <module>
      do_setup(package_data)
    File "setup.py", line 191, in do_setup
      zip_safe=False,
    File "$HOME\AppData\Local\Temp\pip-build-env-yuwvot27\overlay\Lib\site-packages\setuptools\__init__.py", line 152, in setup
      _install_setup_requires(attrs)
    File "$HOME\AppData\Local\Temp\pip-build-env-yuwvot27\overlay\Lib\site-packages\setuptools\__init__.py", line 147, in _install_setup_requires
      dist.fetch_build_eggs(dist.setup_requires)
    File "$HOME\AppData\Local\Temp\pip-build-env-yuwvot27\overlay\Lib\site-packages\setuptools\build_meta.py", line 60, in fetch_build_eggs
      raise SetupRequirementsError(specifier_list)
  setuptools.build_meta.SetupRequirementsError: ['cython', 'numpy', 'setuptools>=18.0']

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "$HOME\AppData\Local\Continuum\anaconda3\envs\dev\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 280, in <module>
      main()
    File "$HOME\AppData\Local\Continuum\anaconda3\envs\dev\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "$HOME\AppData\Local\Continuum\anaconda3\envs\dev\lib\site-packages\pip\_vendor\pep517\_in_process.py", line 114, in get_requires_for_build_wheel
      return hook(config_settings)
    File "$HOME\AppData\Local\Temp\pip-build-env-yuwvot27\overlay\Lib\site-packages\setuptools\build_meta.py", line 150, in get_requires_for_build_wheel
      config_settings, requirements=['wheel'])
    File "$HOME\AppData\Local\Temp\pip-build-env-yuwvot27\overlay\Lib\site-packages\setuptools\build_meta.py", line 130, in _get_build_requires
      self.run_setup()
    File "$HOME\AppData\Local\Temp\pip-build-env-yuwvot27\overlay\Lib\site-packages\setuptools\build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 217, in <module>
      os.unlink(fairseq_examples)
  PermissionError: [WinError 5] Access is denied: 'fairseq\\examples'
  ----------------------------------------
ERROR: Command errored out with exit status 1: '$HOME\AppData\Local\Continuum\anaconda3\envs\dev\python.exe' '$HOME\AppData\Local\Continuum\anaconda3\envs\dev\lib\site-packages\pip\_vendor\pep517\_in_process.py' get_requires_for_build_wheel '$HOME\AppData\Local\Temp\tmpprijkq_f' Check the logs for full command output.
</detail>

Log under $HOME\AppData\Local\Temp\tmpprijkq_f are inaccessible as the temp folder is auto deleted.

Code sample

Expected behavior

Updates normally.

Environment

  • fairseq Version (e.g., 1.0 or master): 0.9.0
  • PyTorch Version (e.g., 1.0) 1.7
  • OS (e.g., Linux): Windows 10
  • How you installed fairseq (pip, source): pip
  • Build command you used (if compiling from source): N/A
  • Python version: 3.7.7
  • CUDA/cuDNN version: N/A
  • GPU models and configuration: N/A
  • Any other relevant information: N/A

Additional context

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Reactions: 3
  • Comments: 18 (2 by maintainers)

Most upvoted comments

Hi everybody !!

This problem has solved. Try to run this pip install -v --no-cache-dir fairseq

Thanks

Using symlinks is generally not a cross-platform solution. I normally comment out the symlink lines in the setup.py @munael @fspanda.

I donโ€™t have a Windows machine to repro this on, but this SO answer says to either use a project environment (ex: conda or virtualenv) or run with administrator privileges

Thanks ! I confirm running the following command on Windows 10 with Git bash started as administrator and in a conda env worked : pip install . --use-feature=in-tree-build

@tanujdhiman - Note that this โ€œworksโ€ by trying to install 0.10.2, 0.10.1, then 0.10.0. It fails on the first two.

@lematt1991, Iโ€™ve created a simple pull request to show how this issue can be solved. Iโ€™m just starting to work with fairseq, so not sure if this patch is good enough. LMK