@@ -45,17 +45,39 @@ RUN pyenv install 3.10.13 && \
45
45
pyenv install 3.12.4 && \
46
46
pyenv install 3.13.0
47
47
48
- ARG PYTHON_VERSION=3.10.13
49
- ENV PYTHON_VERSION=${PYTHON_VERSION}
50
- RUN pyenv global ${PYTHON_VERSION}
48
+ ENV PYTHON_VERSION=3.13.0
51
49
52
- # Create virtual environment
53
- RUN python -m venv /opt/venv
54
- ENV PATH="/opt/venv/bin:$PATH"
55
- ENV VIRTUAL_ENV="/opt/venv"
50
+ # Upgrade pip for each Python version
51
+ RUN for pyver in 3.10.13 3.11.9 3.12.4 3.13.0; do \
52
+ echo "Upgrading pip for Python $pyver..." && \
53
+ pyenv shell $pyver && \
54
+ pip install --upgrade pip setuptools wheel && \
55
+ ## Python-mode dependency
56
+ pip install pytoolconfig; \
57
+ done
56
58
57
- # Upgrade pip in the virtual environment
58
- RUN pip install --upgrade pip setuptools wheel
59
-
60
- # Dependency to load some modules within pyton-mode
61
- RUN pip install pytoolconfig
59
+ # Build and install Vim from source with Python support for each Python version
60
+ RUN export PYENV_ROOT="/opt/pyenv" && \
61
+ export PATH="${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH}" && \
62
+ eval "$(pyenv init -)" && \
63
+ eval "$(pyenv init --path)" && \
64
+ export PYTHON_CONFIGURE_OPTS="--enable-shared" && \
65
+ cd /tmp && \
66
+ git clone https://github.com/vim/vim.git && \
67
+ cd vim && \
68
+ # Build Vim for each Python version
69
+ for pyver in 3.10.13 3.11.9 3.12.4 3.13.0; do \
70
+ echo "Building Vim for Python $pyver..." && \
71
+ pyenv global $pyver && \
72
+ make clean || true && \
73
+ ./configure --with-features=huge --enable-multibyte --enable-python3interp=yes --with-python3-config-dir=$(python-config --configdir) --enable-perlinterp=yes --enable-luainterp=yes --enable-cscope --prefix=/usr/local --exec-prefix=/usr/local/vim-$pyver && \
74
+ make && \
75
+ make install && \
76
+ mv /usr/local/bin/vim /usr/local/bin/vim-$pyver && \
77
+ mv /usr/local/bin/vimtutor /usr/local/bin/vimtutor-$pyver || true && \
78
+ mv /usr/local/bin/xxd /usr/local/bin/xxd-$pyver || true && \
79
+ echo "Vim for Python $pyver installed as vim-$pyver"; \
80
+ done && \
81
+ # Set default Vim to use the current global Python version
82
+ pyenv global ${PYTHON_VERSION} && \
83
+ echo "alias vim='vim-${PYTHON_VERSION}'" >> ~/.bashrc
0 commit comments