9

私は Mac OSX Lion マシンを使用しており、wxPython-src-2.9.3.1.tar.bz2 をダウンロードしました。次に、次のことを行いました(注:出力メッセージは削除されました):

$ tar -xjf wxPython-src-2.9.3.1.tar.bz2
$ cd wxPython-src-2.9.3.1
$ mkdir bld
$ cd bld
$ source /path/to/myvirtualenv/bin/activate
(myvirtualenv)$ cross_compiling=yes
(myvirtualenv)$ export MACOSX_DEPLOYMENT_TARGET=10.6.7
(myvirtualenv)$ set arch_flags="-arch ppc64 "
(myvirtualenv)$ ../configure \
--with-mac --enable-monolithic --enable-threads --enable-unicode \
--enable-debug_flag --enable-debug \
--with-libpng --with-libjpeg --with-libtiff --enable-unicode \
--with-opengl --enable-graphics_ctx --with-odbc --enable-gui \
--with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-macosx-version-min=10.6 \
CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags" --prefix=/path/to/myvirtualenv/
$ (myvirtualenv)make
$ (myvirtualenv)make install

その後、私はこのメッセージを受け取りました(成功したと思います):

...
 ------------------------------------------------------

 The installation of wxWidgets is finished.  On certain
 platforms (e.g. Linux) you'll now have to run ldconfig
 if you installed a shared library and also modify the
 LD_LIBRARY_PATH (or equivalent) environment variable.

 wxWidgets comes with no guarantees and doesn't claim
 to be suitable for any purpose.

 Read the wxWindows Licence on licencing conditions.

 ------------------------------------------------------

そして私を自分の殻に戻しました。しかし、私はそれを使用することはできません

(myvirtualenv)$ python
>>> import wxversion
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named wxversion

virtualenv にインストールする方法はありますか?

4

6 に答える 6

3

上記の記事をすべて読んだ後、これが本当の鍵です。

VE をメインの Python インストールに向ける必要があります。

私のシステムでは:

% ln /Library/Python/2.7/site-packages/wxredirect.pth ./default/lib/python2.7/site-packages/wxredirect.pth

于 2013-08-15T14:24:25.323 に答える
2

Windows の場合、cwestonが OS X 用に概説したのと同じアプローチを使用して、 への呼び出しに変換できますmklink。次のようにして、古い Python 2.7 / WxPython 2.8 ベースのアプリの virtualenv を作成することに成功しました。

インストーラーを使用して WxPython をインストールします。

WxPython がインストールされている site-packages ディレクトリを見つけます。私のため、

C:\Python27\Lib\site-packages

シェルを開き、WxPython を追加したい virtualenv 内の site-packages ディレクトリに移動しますWxApp

cmd
cd C:\Virtualenvs\WxApp\Lib\site-packages

次に、リンクを作成します: wx.pth と wxversion.py のハード リンク、および WxPython インストールを含むディレクトリのジャンクション (私の場合はwx-2.8-msw-unicode):

mklink /h wx.pth C:\Python27\Lib\site-packages\wx.pth
mklink /h wxversion.py C:\Python27\Lib\site-packages\wxversion.py
mklink /j wx-2.8-msw-unicode C:\Python27\Lib\site-packages\wx-2.8-msw-unicode\

wxこれで、モジュールにアクセスできるようになりました:

C:\> C:\VirtualEnvs\WxApp\scripts\activate.bat
(WxApp) C:\>python
ActivePython 2.7.2.5 (ActiveState Software Inc.) based on Python 2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> wx.version()
'2.8.12.1 (msw-unicode)'
>>>
于 2015-01-22T22:16:13.570 に答える
0

それらすべての中で最もクリーンなのは、システムの python を開発作業からできるだけクリーンにすることだと思います。そこにランダムなものを追加すればするほど、あいまいな問題に遭遇する可能性が高くなります。

しかし

wxPython の最も簡単な選択はシステム全体の brew インストールであるため、何らかの理由で適切な python パッケージング/pip 統合がないようです。この場合、システム全体のサイト パッケージに入ります。

virtualenv は、システム全体のサイト パッケージを virtualenv に読み取り専用でリンクすることをサポートしています。--system-site-packagesスイッチを使用して virtualenv を作成してください。これにより、基礎となる python インストールに対して透過的になります。

これが、将来これに遭遇する人々に役立つことを願っています。

于 2016-06-09T07:12:10.923 に答える
0

プロジェクトでこれを修正する小さなスクリプトを作成しました。共有するのはいいかもしれないと思いました。

私は次の設定をしています:

  • home-brew でインストールされた python と wxpython
  • virtualenvwrapper を使用して仮想環境を管理する

mkproject で新しいプロジェクトを開始した後、次のスクリプトを実行してこの問題を修正します。

#!/usr/bin/env bash

echo This script fixes issues with wxpython and virtualenv on mac os. >&2
echo It needs to be run inside a virtualenv created with virtualenvwrapper. >&2
echo It also assumes that wxpython was installed through homebrew. >&2
echo

PYTHON_FULL_VERSION=$(python --version 2>&1 | awk -F ' ' '{ print $2 }')
PYTHON_SHORT_VERSION=$(python -c 'import sys; print "%d.%d" % (sys.version_info[0], sys.version_info[1])')

echo detected python version: "$PYTHON_FULL_VERSION" >&2

[ -d "$VIRTUAL_ENV" ] || { echo "ERROR: First activate the virtualenvironment." >&2; exit 1; }

# PART 1: Add homebrew-installed wx to env's site-packages
HOMEBREW_SITE_PKG="/usr/local/lib/python${PYTHON_SHORT_VERSION}/site-packages"
VENV_SITE_PKG="${VIRTUAL_ENV}/lib/python${PYTHON_SHORT_VERSION}/site-packages"

ln -s "${HOMEBREW_SITE_PKG}/wx.pth" "$VENV_SITE_PKG"
ln -s "${HOMEBREW_SITE_PKG}/wx-3.0-osx_cocoa" "$VENV_SITE_PKG"

# PART 2: At activation of venv we set PYTHONHOME
# NB This needs virtualenvwrapper to work
echo 'export PYTHONHOME="$VIRTUAL_ENV"' >> "${VIRTUAL_ENV}/bin/postactivate"

# PART 3: link the pythonw executable in the virtualenv
PYTHONW="/usr/local/Cellar/python/${PYTHON_FULL_VERSION}/bin/pythonw"
ln -s "$PYTHONW" "${VIRTUAL_ENV}/bin/pythonw"

echo "You should now re-activate the environment."
于 2014-12-22T12:34:03.813 に答える
0

これは、お使いのバージョンの Python をインストールしたときに、 CPythonのインストールを でビルドする必要があったためです--enable-framework。そのため、Mac では次のコマンドを実行する必要があります。

$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.x.x
于 2017-10-05T16:53:34.257 に答える