Hello dear Linux-Fellows
i am pretty new to this site - this is my very first question. I hope that it is written well
After dealing some time with the installation and the setup of a development-enviroment on a linux box (MX-Linux 19.1 ) and besides that on a Win10 too. i need your advice.
i have installed Python in a global mode and fashion. And i guess that this causes issues all along the way.
BTW: guess that it surely is worth to look into
docker (and perhaps into
Anaconda too - since i guess that i might get rid of the hell of dependencies... note: i am installing all that stuff on both on ... a. on win 10 and b. on linux ?
i have read some and have seen a whole bunch of tutorials on the
setup virtual environment for Python
- in VS Code - best practices for using Virtualenv
- and besides for ATOM ...
i am very very glad that you have posted and give me some important hints:
Quote:
it semms like the package which i installed and the project's environment i am currently using is different.
the package which i have installed was in the global environment: " c:\program files\python37\lib\site-packages ", and well it seems like i looks like using the environment different(maybe the environment related to the project): This said i try ton identify this by look the right left coner shows which environment i am currently using now.
|
So i guess that i have to using virtualenv to isolate my projects and then i store pip dependencies in requirements.txt.
As we develop, we install, remove and upgrade packages, the list of dependencies in your project differs from requirements.txt
but how can i do it right - how to setup venv the right way -
a. on win 10 and
b. on linux ?
i have setup a python-development-environment on a Windows 10 machine and on a MX-Linux-machine.
i guess that i set up the machine /ATOM badly - any and all help greatly appreciated.
note: the setup of Python with global mode is weird so weird.
regarding the set up and usage of virtual environment in VSCode
I recently have read an article on using
Virtual Environments for Python projects.
https://towardsdatascience.com/pytho...y-fe0c603fe601
and this one
Comparing Python Virtual Environment tools
https://towardsdatascience.com/compa...s-9a6543643a44
guess, that have to take care how i setup python on my linux-machine.
Comparing installed pip packages with requirements.txt :: So if we are using virtualenv to isolate our projects and then subsequently we store pip dependencies in requirements.txt. As we develop, we install, remove and upgrade packages, the list of dependencies in your project differs from the so called requirements.txt
Currently Installed Packages: To list what are the packages that are actually installed, we can run
Compare Differences: A simple comparison of requirements.txt and pip freeze will fail because the packages are in different order.
sort both of the output then compare them with pip
to
sume up: some of the best Practices are the following:
- Always make sure requirements.txt reflects the actual dependencies
- Pin package dependencies - use the exact version
- Preferably track only the top level dependencies in your requirements.txt
- Update dependencies periodically - year but how
- Consider using pip-compile and pip-sync to manage your dependencies. Use pur to automatically update your top level dependencies in requirements.txt
I am starting to work on VS-Code using venv: In my project folder I guess that i have to create venv folder.
Code:
python -m venv venv /path/to/new/virtual/environment
but when i run in VS Code the command select python interpreter my venv folder is not shown.
to make sure that i do all okay i try the following steps
to make my virtual interpreter in VS Code visible? i
1. just
go to File > preferences > Settings - afterwards i
2. click on Workspace settings.
3. Under
Files: Association, we will find Edit in settings.json , Well i click on that.
4. Update "python.pythonPath": "my_venv_path/bin/python" under workspace settings.
(For Windows): Update "python.pythonPath": "my_venv_path/Scripts/python.exe" under workspace settings. And subsequently
5. Restart VSCode incase if it still doesn't show the venv.
another option to show virtual environments in vs code:
go to the parent folder in which venv is there through command prompt.
Type code . and Enter. [Working on both windows and linux for me.]
That should also show the virtual environments present in that folder.
In one workspace folder named Python need to adde all my other projects.
to spell it out clearly:
- I would have to have only one venv for the whole workspace folder Python.
- i add each subfolder in Python folder as a workspace project like Project1, Project2, Project3, Project4, Project5, Project6 etc.
In that Project folder I created venv environment and edited settings.json for workspace with this "python.venvPath": "venv" .
Now, for every new project I will create new workspace and inside that folder goes venv folder which will be automatically recognized.
Code:
+------------------------+
| |
| |
| python-workspace |
| ....-folder |
| |
+----------+-------------+
|
|
| +----------------------+
| | |
+--------------+ Project1 |
| | |
| +----------------------+
|
| +----------------------+
| | |
+--------------+ Project2 |
| | |
| +----------------------+
|
| +----------------------+
| | |
+--------------+ Project3 |
| | |
| +----------------------+
|
| +----------------------+
| | |
+--------------+ Project4 |
| | |
| +----------------------+
|
| +----------------------+
| | |
+--------------+ Project5 |
| | |
| +----------------------+
|
| +----------------------+
| | |
+--------------+ Project6 |
| |
+----------------------+
how do you like this idea!?
some additional ideas:
Attention: I was trying to make my project directory and the virtual environment one and the same - which isn't correct.
I have a \Code\Python directory where I store all my Python projects.
My
Code:
Python 3 installation is on my Path.
If I want to create a new Python project (Project1) with its own virtual environment, then I do this:
Code:
python -m venv Code\Python\Project1\venv
Then, simply opening the folder (Project1) in Visual Studio Code ensures that the correct virtual environment is used.
some words about the creation of
a new environment in VSCode
we can create a new environment in VSCode, if were just running the following command ( well genearlly spoken we can use “.env” as name of the environment):
Code:
python -m venv .name_of_environment
note: it is possible to use the PowerShell as terminal in VSCode, we are able to run the ps1 file.
Code:
.\.name_of_environment\Scripts\activate.ps1
ther is another option: we also can use the command prompt as terminal in VSCode. If we doso then we can run the bat file.
Code:
\.name_of_environment\Scripts\activate.bat
the good thing: vscode shows up in the bottom left corner the progress:
if we just click on the the Python 3.X.X and then we can see the active executable is pointing to the python.exe in our virtual environment folder.
this is allmost in every case possible and doable. If not - then were able to select it from the dropdown. This should now be indicated in the bottom left of VS Code. one main goal is to ensure that the virtual environment has been created inside the folder from our workspace if - for the seldom case it happens that it was created outside the folder from our workspace, then we can rework this a bit. In this case, VS Code doesn’t pick it up automatically we need to fix this.
how do you like this idea!?
yours rincon - allways going the hard way
learing Python the hard way
some good ressources:
Python Tutorial:
https://code.visualstudio.com/docs/p...ython-tutorial
virtual environment - the legendary hitchhiker-guide
https://docs.python-guide.org/dev/virtualenvs/
Python Tutorial: VENV (Mac & Linux) - How to Use Virtual Environments with the Built-In venv Module
a video by corey schafer:
https://www.youtube.com/watch?v=Kg1Yvry_Ydk