# Issues

Issue #378 resolved

# quickinstall.py fails on windows

Roger Haase
created an issue

1 Virtual-env under Windows creates a Scripts folder, not a bin folder. Lines ~44 and ~55 yield a traceback unless they are changed to:

    os.path.join(self.dir_venv, 'Scripts', 'pip'),


2a The ending success message needs work:

    Succesfully created or updated venv
C:\Bitbucket\venv-xxxx-python.exe
You can run MoinMoin as
C:\Bitbucket\venv-xxxx-python.exe/bin/moin


last line should be:

    C:\Bitbucket\venv-xxxx-python.exe\Scripts\moin


2b A folder name ending in python.exe is odd. Something like <repo-name> + "-env" would result in file managers displaying the names adjacent to each other.

2c The "You can run MoinMoin as" is misleading as the next step will usually be to build a wiki and maybe load data.

2d Is there an advantage to moving the env outside of the repo root?

1. reporter

On second thought, making the virtual env a sibling of the repo root and changing the name based on the name of the repo root causes unnecessary complexities. Writing scripts to reduce keying is easier if the virtual env is a child of the repo root and has a consistent name, like env.

2. repo owner

yeah, I see what you mean, but otoh, having the venv inside the workdir also causes issues, e.g. you always have to care for excluded, e.g. for search or code inspections, otherwise tools will search/inspect a lot of non-project code.

3. reporter

Well, the default venv name is not easy to remember. And it would be nice if the starting characters were the same as the repo root so file managers would normally display the repo root and the venv as adjacent siblings. That way a novice user has a chance of discovering the two are related.

As a compromise, maybe quickinstall.py could create some easy to remember command files in the repo root to reduce keying. For Windows:

moin.bat

\path\to\env\Scripts\moin.exe %*


activate.bat

call \path\to\env\Scripts\activate.bat


deactivate.bat

call \path\to\env\deactivate.bat


The above could be used within larger scripts to create or load backups, run tests, create docs, etc.

I have imported 'platform' from 'sys' library and using it to check for a windows platform -

Am i doing it right ?