我希望能够共享一个自包含的virtualenv,即确保安装的所有脚本都能够直接运行而无需设置任何内容。 例如我在使用MySQL-python的virtualenv中安装了一个脚本。不幸的是,导入MySQLdb会查找一个共享库(libmysqlclient.so),该库被移动到我的系统上的标准目录以外的地方。 有没有办法保证我的virtualenv每次有人使用它时都会找到这个库?virtualenv可以找到重新定位的库(如MySQLdb的mysqlclient库)
5
A
回答
3
这可能不是最好的解决方案,但是你可以破解virtualenv活动脚本来设置一些环境变量(这是一个我们需要使用的脚本)。 在virtualenv中的安装脚本,我说:
echo 'export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH' >> /path/to/virtualenv/activate
现在每次有人使用我的virtualenv,还包括LD_LIBRARY_PATH找到mysql库。
缺点,我可以看到:
不要的virtualenv的工作很好的解除
,如果你想你的包与标准的distutils setup.py分布也无济于事。
5
我知道这个问题是有点老了,但我很乐意分享我的不足通过谷歌找到它的解决方案:
在deactivate()
功能,加上下面几行:
if ! [ -z ${_OLD_LD_LIBRARY_PATH+x} ] ; then
LD_LIBRARY_PATH="$_OLD_LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
unset _OLD_LD_LIBRARY_PATH
fi
请注意,我使用了一个否定-z
表达 - 为PATH
和PYTHONHOME
使用-n
,如果_OLD_LD_LIBRARY_PATH
设置为EMP它错误地计算结果为假现有的复位脚本ty字符串。
然后,下面的deactivate()
功能,添加以下部分:
_OLD_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
LD_LIBRARY_PATH="$VIRTUAL_ENV/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
相关问题
- 1. CMake无法找到mysqlclient库
- 2. python2.5中的MySQLdb virtualenv
- 3. virtualenv的哪些部分需要更改以重新定位它?
- 4. 当我给定位置时,哪里可以找到hive数据库的位置?
- 5. 试图将WC重新定位到新存储库的问题
- 6. mysqlclient库连接问题
- 7. 如何找到Qt库的位置
- 8. 哪里可以找到官方Android库的最新版本?
- 9. Python的重新连接到MySQLdb的
- 10. 重新编译32位库
- 11. 是否可以重新定位pythonbrew
- 12. .goutputstream-XXXXX - 可以重新定位?
- 13. 我可以重新定位`.stack-work`吗?
- 14. 在virtualenv中将MySQLdb添加到sys.path
- 15. 的Django的virtualenv VS库包
- 16. 我在哪里可以找到Microsoft.IdentityModel.Extensions.dll库?
- 17. 我在哪里可以找到nhs.itk.hl7v3库
- 18. 哪里可以找到Sqlite数据库?
- 19. 哪里可以找到开源Java库?
- 20. 我在哪里可以找到LinkGrammar库?
- 21. 找到重定位的起始位置
- 22. virtualenv pip mysqldb mac os X python
- 23. PythonAnywhere +的virtualenv: “无法找到平台依赖库<exec_prefix> ......”
- 24. 找到重复的数据库的最大数字位数
- 25. 将工作副本重新定位到不在Netbeans中的新SVN存储库
- 26. 如何将重定位pom.xml部署到sonatype的OSS存储库
- 27. virtualenv和django的其他库
- 28. Ruby库可以在布局好的网页上找到项目的“位置”?
- 29. 找到URL重定向到的位置
- 30. 重新连接到新的SVN仓库