facebookresearch / fairseq

Facebook AI Research Sequence-to-Sequence Toolkit written in Python.
MIT License
30.52k stars 6.41k forks source link

pip install on Windows gives permission errors accessing a temp folder through an Admin console #3194

Open munael opened 3 years ago

munael commented 3 years ago

🐛 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:

``` 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 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 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 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. ```

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

Code sample

Expected behavior

Updates normally.

Environment

Additional context

lematt1991 commented 3 years ago

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

fspanda commented 3 years ago

I have similar issue. I referred to @lematt1991 's answer, but it was not solved. In my case, there is a problem with the 10.2 and 10.1 versions and 10.0 is installed.

erip commented 3 years ago

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

sierkov commented 3 years ago

@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

munael commented 3 years ago

This seems like it should be on for the 10.3 milestone. Updating on Windows is currently broken :/ Only recourse (which I've yet to try) is to install from a clone of a fixed branch. But that'll just mess up updates later on...

Edit: Installing from conda (with -c conda-forge) seems to work for now.

tanujdhiman commented 3 years ago

Hi everybody !!

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

Thanks

Lukecn1 commented 3 years ago

pip install -v --no-cache-dir fairseq

Although I no longer see the access denied error running this I cannot import fairseq in any python script, it says that no such module exists.

tanujdhiman commented 3 years ago

Hi @Lukecn1 Please try first in a fresh env.

munael commented 3 years ago

@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.

tanujdhiman commented 3 years ago

@munael Is your issue resolved ?

munael commented 3 years ago

@tanujdhiman It seems to reappear on 0.10.1 and 0.10.2. 0.10.0 installs fine, but only after pip tries the later patches first and fails with the same error.

PC1617 commented 2 years ago

pip install fairseq==0.10.0

tanujdhiman commented 2 years ago

pip install fairseq==0.10.0

Yep ! This is working on this cmd but doubt is why it doesn't work with other versions like 0.10.1 and 0.10.2.

rami-Khrais commented 2 years ago

install fairseq and develop locally:

git clone https://github.com/pytorch/fairseq cd fairseq

activate venv(your env) pip install --editable .

tanujdhiman commented 2 years ago

git clone https://github.com/pytorch/fairseq cd fairseq

activate venv(your env) pip install --editable .

Is it working on all Operating Systems (Mac, Linux and specially Windows) ?

rami-Khrais commented 2 years ago

git clone https://github.com/pytorch/fairseq cd fairseq activate venv(your env) pip install --editable .

Is it working on all Operating Systems (Mac, Linux and specially Windows) ?

Yes, Tested on Windows 10 and Ubuntu 20.04

ismael-elatifi commented 2 years ago

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

BramVanroy commented 2 years ago

This is still a relevant issue today.