Home > Blockchain >  How to install a package from git into a specific directory using pip -t
How to install a package from git into a specific directory using pip -t

Time:09-23

I have downloaded all of my requirements in AWS Linux EFS using

pip3 install -t /mnt/efs/fs1/ml/ -r /mnt/efs/fs1/ml/requirements.txt

They get downloaded without an issue and I'm able to call them too. Now I want to install detectron2 but it has to be done separately as it requires torch already in the system.

I install it with:

pip3 install -t /mnt/efs/fs1/ml/ 'git https://github.com/facebookresearch/detectron2.git'

Even if I have installed torch in above requirements, and able to import it too. I also installed it in the global path too (without -t) but still I'm getting the error:

pip3 install 'git https://github.com/facebookresearch/detectron2.git'
Defaulting to user installation because normal site-packages is not writeable
Collecting git https://github.com/facebookresearch/detectron2.git
  Cloning https://github.com/facebookresearch/detectron2.git to /tmp/pip-req-build-bcthhh9q
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-bcthhh9q/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-bcthhh9q/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-nmaxo6d1
         cwd: /tmp/pip-req-build-bcthhh9q/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-bcthhh9q/setup.py", line 10, in <module>
        import torch
    ModuleNotFoundError: No module named 'torch'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

What is the problem here? The below command runs perfectly in my system when I don't install requirements.txt with -t flag.

CodePudding user response:

This looks like version issue, version supported for torch and detectron2 should be in sync.You can go through this for details :

https://detectron2.readthedocs.io/en/latest/tutorials/install.html

CodePudding user response:

Found the solution. The PYTHONPATH was pointing to default directory so had to tell the env about the new location of packages.

All you have to do is to run the command in terminal:

export PYTHONPATH="${PYTHONPATH}:/mnt/efs/fs1/ml"

And then use the command as usual. It'll work fine

  • Related