this post was submitted on 04 Jan 2025
9 points (90.9% liked)
Steam Deck
15155 readers
1548 users here now
A place to discuss and support all things Steam Deck.
Replacement for r/steamdeck_linux.
As Lemmy doesn't have flairs yet, you can use these prefixes to indicate what type of post you have made, eg:
[Flair] My post title
The following is a list of suggested flairs:
[Discussion] - General discussion.
[Help] - A request for help or support.
[News] - News about the deck.
[PSA] - Sharing important information.
[Game] - News / info about a game on the deck.
[Update] - An update to a previous post.
[Meta] - Discussion about this community.
Some more Steam Deck specific flairs:
[Boot Screen] - Custom boot screens/videos.
[Selling] - If you are selling your deck.
These are not enforced, but they are encouraged.
Rules:
- Follow the rules of Sopuli
- Posts must be related to the Steam Deck in an obvious way.
- No piracy, there are other communities for that.
- Discussion of emulators are allowed, but no discussion on how to illegally acquire ROMs.
- This is a place of civil discussion, no trolling.
- Have fun.
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Some questions that would help folks help you debug:
cat .venv/bin/activate
?which python
both before and after running the source command?python -m pip freeze
both before and after running the source command?Oh, and a Python pro tip - when a virtual environment misbehaves in any way, I'm pretty quick to
rm -rf .venv
and rebuild it, in case I did something I forgot about. (If I've run more than 5 commands and myvenv
isn't behaving as expected, I figure I am way off track.)Thank you for help with what commands to run to get more info. I've tried multiple virtual environments each of ones built on the command line and through VSCode and had the same results with each. The current one that I did the cat command on was built with VSCode.
cat .venv/bin/activate
This file must be used with "source bin/activate" from bash
You cannot run it directly
deactivate () { # reset old environment variables if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then PATH="${_OLD_VIRTUAL_PATH:-}" export PATH unset _OLD_VIRTUAL_PATH fi if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" export PYTHONHOME unset _OLD_VIRTUAL_PYTHONHOME fi
}
unset irrelevant variables
deactivate nondestructive
on Windows, a path can contain colons and backslashes and has to be converted:
if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then # transform D:\path\to\venv to /d/path/to/venv on MSYS # and to /cygdrive/d/path/to/venv on Cygwin export VIRTUAL_ENV=$(cygpath /home/deck/Repos/PysidianSiteMaker/PysidianSiteMaker/.venv) else # use the path as-is export VIRTUAL_ENV=/home/deck/Repos/PysidianSiteMaker/PysidianSiteMaker/.venv fi
_OLD_VIRTUAL_PATH="$PATH" PATH="$VIRTUAL_ENV/"bin":$PATH" export PATH
unset PYTHONHOME if set
this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
could use
if (set -u; : $PYTHONHOME) ;
in bashif [ -n "${PYTHONHOME:-}" ] ; then _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" unset PYTHONHOME fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then _OLD_VIRTUAL_PS1="${PS1:-}" PS1='(.venv) '"${PS1:-}" export PS1 VIRTUAL_ENV_PROMPT='(.venv) ' export VIRTUAL_ENV_PROMPT fi
Call hash to forget past commands. Without forgetting
past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null
which python
/usr/bin/pythonpython -m pip freeze (before source)
aiohttp==3.9.1 aiosignal==1.3.1 anyio==4.2.0 attrs==23.2.0 btrfsutil==6.7.1 certifi==2024.2.2 cffi==1.16.0 click==8.1.7 crcmod==1.7 crit==3.18 cryptography==41.0.7 dbus-next==0.2.3 dbus-python==1.3.2 distro==1.9.0 evdev==1.6.1 frozenlist==1.4.1 h11==0.14.0 hid==1.0.4 httpcore==1.0.2 httpx==0.26.0 idna==3.6 iotop==0.6 multidict==6.0.4 nftables==0.1 packaging==23.2 perf==0.1 ply==3.11 progressbar2==4.3.2 protobuf==4.25.2 psutil==5.9.8 pyalsa==1.2.7 pyaml==23.9.0 pycparser==2.21 pyelftools==0.30 pyenchant==3.2.2 PyGObject==3.46.0 python-utils==3.8.2 PyYAML==6.0.1 semantic-version==2.10.0 smbus==1.1 sniffio==1.3.0 SteamOS Atomic Updater==0.20190711.0 steamos_log_submitter @ file:///builds/holo/holo/holo/steamos-log-submitter/src/steamos-log-submitter typing_extensions==4.9.0 yarl==1.9.4python -m pip freeze (after source)
No module named pip
No module named pip
is usually because I have Python earlier than 3.9ish and the vast majority of recipes expect Python 3.9 or later.A virtual environment that removes access to
pip
certainly isn't working as desired.Here's some things your outputs tell me:
activate
script looks fine, on a casual read. (One of the problems we have ruled out is an empty activate file.)Having ruled out an empty activate file, I would check on what shell is running. Your activate script expects
bash
- a classic - but your SteamDeck terminal could default to something else.I would also try tossing a
3
at the end of the Python and pip commands. In some situations it can help a missing command be found.Try these:
Okay so I wiped the .venv that VSCode made again and this time ran the venv creation using
python3 -m venv venv
. It's working with command line now but not within VSCode (running into the same issue that I had before but in reverse, so VSCode isn't recognizing pip or other installed modules like markdown that I added in command line).This is starting to feel like maybe a difference in how VSCode handles the virtual environment vs the command line. When I create the venv in one it breaks the other
Edit: Yeah idk what VSCode is up to. I uninstalled, remade the venv with Konsole, and installed PyCharm instead. Commands through Konsole and the PyCharm terminal are all working as expected now.
Thank you for the help!
If it's any consolation, this is why I don't use VSCode at work. I got sick of trying to figure out what it was playing at with regards to virtual environments. PyCharm is my go-to.
You're very welcome! I've had that issue with VSCode. I tend to create my venv outside of VSCode and force VSCode to use it. I've had issues Usually because VSCode is very particular about where the venv folder can be (it really wants it in the root of the current open folder).
All that said, everyone I know with a PyCharm licence likes it better than VSVcode anyway.
Have fun! Don't hesitate to reach out if you get stuck.