Dav*_*itt 10 python homebrew virtualenv
我最近跑了(OS X 10.6.8)brew update并且brew upgrade正在使用现在失败的virtualenv.我试过了:
$ brew unlink python && brew link python
Unlinking /usr/local/Cellar/python/2.7.8_1... 38 symlinks removed
Linking /usr/local/Cellar/python/2.7.8_1... 35 symlinks created
Run Code Online (Sandbox Code Playgroud)
但在virtualenv中,我仍然得到这个:
$ python --version
dyld: Library not loaded: @executable_path/../.Python
Referenced from: /Users/admin/.virtualenvs/saves/bin/python
Reason: image not found
Trace/BPT trap
Run Code Online (Sandbox Code Playgroud)
我发现了另一篇文章,但解决方案似乎还不清楚.我赶时间,所以卸载了Python版本并运行brew doctor了返回上面的错误作为警告:
sh: line 1: 40991 Trace/BPT trap python -V 2>&1
Run Code Online (Sandbox Code Playgroud)
然后brew install python.仍然在virtualenv中得到上述错误.
相关问题和关于debugfix的帖子不是确定的:
Virtualenvs dyld-library-loaded-executable_path-python中的引用损坏
创建一个新的virtualenv解决了这个特定的问题.
小智 17
我会将我的评论作为答案,以便明确未来访问者遇到同样的问题.
你给出的相关链接告诉你究竟是什么问题:因为virtualenv创建了文件的符号链接,并且当使用不同命名的文件升级时,自制软件会替换这些文件,最终会出现断开的链接.这两个相关链接都提供了如何解决这个问题的建议:一个用于创建新的virtualenv,另一个用于修复损坏的链接.
总而言之,当Python再次在自制软件中升级时,您可能会遇到相同的情况.
这显然是由virtualenv开发人员实现的,并且有一个选项--always-copy可以避免这样的问题:
$ virtualenv --help
Usage: virtualenv-3.4 [OPTIONS] DEST_DIR
Options:
...
--always-copy Always copy files rather than symlinking.
...
Run Code Online (Sandbox Code Playgroud)
这可以防止将来通过Homebrew升级Python时出现问题.当然,当然,你的virtualenv将有一个旧版本的Python.这有时可能正是你想要的.
| 归档时间: |
|
| 查看次数: |
4856 次 |
| 最近记录: |