Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

From conda create requirements.txt for pip3

Hi I usually use conda to manage my environments, but now I am on a project that needs a little more horsepower than my laptop. So I am trying to use my university's workstations which have new Intel Xeons. But I don't have admin rights and the workstation does not have conda so I am forced to work with virtualenv and pip3.

How do I generate a requirements.txt from conda that will work with pip3 and venv?

conda list -e > requirements.txt 

does not generate a compatible file:

= is not a valid operator. Did you mean == ? 

The conda output is:

# This file may be used to create an environment using: # $ conda create --name <env> --file <this file> # platform: osx-64 certifi=2016.2.28=py36_0 cycler=0.10.0=py36_0 freetype=2.5.5=2 icu=54.1=0 libpng=1.6.30=1 matplotlib=2.0.2=np113py36_0 mkl=2017.0.3=0 numpy=1.13.1=py36_0 openssl=1.0.2l=0 pip=9.0.1=py36_1 pyparsing=2.2.0=py36_0 pyqt=5.6.0=py36_2 python=3.6.2=0 python-dateutil=2.6.1=py36_0 pytz=2017.2=py36_0 qt=5.6.2=2 readline=6.2=2 scikit-learn=0.19.0=np113py36_0 scipy=0.19.1=np113py36_0 setuptools=36.4.0=py36_1 sip=4.18=py36_0 six=1.10.0=py36_0 sqlite=3.13.0=0 tk=8.5.18=0 wheel=0.29.0=py36_0 xz=5.2.3=0 zlib=1.2.11=0 

I thought I would just manually change all = to == but the there are two = in the conda output. Which one to change? Surely there is an easier way?

EDIT: pip freeze > requirements.txt gives:

certifi==2016.2.28 cycler==0.10.0 matplotlib==2.0.2 matplotlib-venn==0.11.5 numpy==1.13.1 pyparsing==2.2.0 python-dateutil==2.6.1 pytz==2017.2 scikit-learn==0.19.0 scipy==0.19.1 six==1.10.0 
like image 750
ITA Avatar asked Jun 09 '18 19:06

ITA


People also ask

Can you use conda to install requirements txt?

You can run conda install --file requirements. txt instead of the loop, but there is no target directory in conda install. conda install installs a list of packages into a specified conda environment. There us no target directory for in conda install .

How do I create a pip requirement text file?

The most common command is pip freeze > requirements. txt , which records an environment's current package list into requirements. txt. If you want to install the dependencies in a virtual environment, create and activate that environment first, then use the Install from requirements.

Where is pip requirements txt?

Typically the requirements. txt file is located in the root directory of your project. Notice we have a line for each package, then a version number. This is important because as you start developing your python applications, you will develop the application with specific versions of the packages in mind.

Can you mix conda and pip?

Whilst conda can not install files from GitHub directly, we can use conda to install pip, and (via pip) access GitHub. Whilst over 1,500 packages are available in the Anaconda repository, this is tiny compared to the over 150,000 packages available on PyPI.


1 Answers

As the comment at the top indicates, the output of

conda list -e > requirements.txt

can be used to create a conda virtual environment with

conda create --name <env> --file requirements.txt

but this output isn't in the right format for pip.

If you want a file which you can use to create a pip virtual environment (i.e. a requirements.txt in the right format) you can install pip within the conda environment, then use pip to create requirements.txt.

conda activate <env> conda install pip pip freeze > requirements.txt 

Then use the resulting requirements.txt to create a pip virtual environment:

python3 -m venv env source env/bin/activate pip install -r requirements.txt 

When I tested this, the packages weren't identical across the outputs (pip included fewer packages) but it was sufficient to set up a functional environment.

For those getting odd path references in requirements.txt, use:

pip list --format=freeze > requirements.txt 
like image 50
rmwenzel Avatar answered Sep 30 '22 14:09

rmwenzel