11

Hello I am having troubles with the pipreqs librairy in Python. It doesn't generate the correct requirements.txt file. I am using a Python Virtual Environment and the only packages I have installed are pipreqs and selenium with

pip install pipreqs pip install selenium 

Structure of the project:

MyProject |- test.py 

And test.py has only one line:

from selenium import webdriver 

First when I do

pipreqs ./ 

I got the error UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 3474: character maps to <undefined> which I managed to solve by using

pipreqs ./ --encoding=utf-8 

But now the requirements.txt generated doesn't match my expectations. In my opinion, it should be equal to:

selenium==1.341.0 

But it is equal to:

brotli==1.0.9 cryptography==3.2.1 ipaddr==2.2.0 lxml==4.6.1 mock==4.0.2 ordereddict==1.1 protobuf==3.13.0 pyOpenSSL==19.1.0 simplejson==3.17.2 

Now when I try to clone this code and do pip install -r requirements.txt it doesn't install selenium and the code doesn't run.

What is happening here ?

0

1 Answer 1

23

So the issue I had was that my actual workspace was:

MyProject |- .venv // <- My Python Virtual Environment |- test.py 

My Python Virtual Environment was in my Project folder so when I run the command

pipreqs ./ 

it is looking at all the dependencies of all the files in the folder (including my virtual environment) and that is why it was generating a weird requirements.txt file.

To fix this, I used the option --ignore of pipreqs:

pipreqs ./ --ignore .venv 

And the generated requirements.txt is:

selenium==3.141.0 

You may also want to ignore other folders that are causing issues like this:

pipreqs --ignore bin,etc,include,lib,lib64,.venv 

The --force tag will also overwrite the existing requirements.txt

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.