I have never used requirements.txt before, and just came across it following a tutorial. My file looks like this:
pip install kivy pip install kivy-deps.angle pip install kivy-deps.glew pip install kivy-deps.gstreamer pip install kivy-deps.sdl2 Yet when I run pip install-r requirements.txt, I get the error:
ERROR: Invalid requirement: 'pip install kivy' (from line 1 of requirements.txt) Kivy installs fine if I do a plain pip install kivy. What is wrong with this scenario?
1 Answer
That's not a valid requirements.txt file, it's a list of shell commands. You could run it with a shell:
bash requirements.txt Renaming it would be a good idea to avoid confusion.
A valid requirements.txt file is usually produced by running pip freeze in an environment with dependencies already installed and redirecting its output to a file:
pip freeze > requirements.txt It can also be crafted manually. It would look somewhat like this:
kivy==1.11.1 kivy-deps.angle==0.2.0 kivy-deps.glew==0.2.0 kivy-deps.gstreamer==0.2.0 kivy-deps.sdl2==0.2.0 As you can see, it doesn't specify just package names, but also their versions. This way you're always installing known good versions of dependencies.