VirtualBox中的Ubuntu服务器。我正在尝试安装VirtualEnv以开始学习Flask和bottle。 我的设置的一些细节。
vks@UbSrVb:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="12.04.2 LTS, Precise Pangolin"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu precise (12.04.2 LTS)"
VERSION_ID="12.04"
vks@UbSrVb:~$ python --version
Python 2.7.3
vks@UbSrVb:~$ echo $VIRTUALENVWRAPPER_PYTHON
/usr/bin/python
vks@UbSrVb:~$ echo $VIRTUALENV_PYTHON
vks@UbSrVb:~$
当我启动虚拟机时,我的控制台上出现以下错误
/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenv has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
当我尝试初始化virtualenv时,我收到以下错误
vks@UbSrVb:~/dropbox/venv$ virtualenv try1
New python executable in try1/bin/python3.2
Also creating executable in try1/bin/python
Traceback (most recent call last):
File "/usr/local/bin/virtualenv", line 9, in <module>
load_entry_point('virtualenv==1.9.1', 'console_scripts', 'virtualenv')()
File "/usr/local/lib/python3.2/dist-packages/virtualenv.py", line 979, in main
no_pip=options.no_pip)
File "/usr/local/lib/python3.2/dist-packages/virtualenv.py", line 1081, in create_environment
site_packages=site_packages, clear=clear))
File "/usr/local/lib/python3.2/dist-packages/virtualenv.py", line 1499, in install_python
os.symlink(py_executable_base, full_pth)
OSError: [Errno 30] Read-only file system
vks@UbSrVb:~/dropbox/venv$ ls
try1
vks@UbSrVb:~/dropbox/venv$ ls try1/
bin include lib
vks@UbSrVb:~/dropbox/venv$
我的.bashrc条目
export WORKON_HOME='~/dropbox/venv/'
source '/usr/local/bin/virtualenvwrapper.sh'
Q1 - 根据启动时的错误,我如何确保为VIRTUALENVWRAPPER_PYTHON = / usr / bin / python安装了 virtualenv ,并且PATH是
设置得当吗?
Q2 - 即使使用sudo,我也会得到相同的“只读文件系统”错误?
我尝试使用pip然后使用apt-get安装virtualenv,只是为了点击并尝试。
答案 0 :(得分:0)
尝试将您的WORKON_HOME全局设置为另一个路径(〜/ .virtualenvs),例如,看看是否有效,可能问题出在该共享目录中,您使用的是Windows吗?如果是,请尝试安装ntfs-3g,请参阅https://askubuntu.com/questions/70281/why-does-my-ntfs-partition-mount-as-read-only
同样在我的个人资料配置文件中,我想首先检测是否安装了virtualenvwrapper:
if which virtualenvwrapper.sh &> /dev/null; then
WORKON_HOME=$HOME/.virtualenvs
# path to virtualenvwrapper, in my case
source /usr/local/share/python/virtualenvwrapper.sh
fi
答案 1 :(得分:0)
我遇到的问题是我的pip
用于不同版本的python而不是我想要使用的版本。
$ python -V
Python 2.7.5+
$ pip -V
pip 1.5.4 from /usr/local/lib/python3.3/dist-packages (python 3.3)
因此,当我使用pip
安装virtualenv
和virtualenvwrapper
时,新的python包被放入python3.3
的dist-packages中,当然我的python2.7
无法找到它们!
要解决此问题,我必须使用相应版本的pip,在我的情况下,它是pip2
。
$ pip2 -V
pip 1.5.4 from /usr/local/lib/python2.7/dist-packages (python 2.7)
因此,请确保使用的是pip
的相应版本。