我刚刚从github下载了python 3.6.1并将其构建在本地目录中。现在,我正在尝试使用该版本的python创建virtualenv,但我不断得到:
Running virtualenv with interpreter /home/giorgio/tools/cpython-3.6.1/python
Using base prefix '/usr/local'
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 2462, in <module>
main()
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 762, in main
symlink=options.symlink,
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 998, in create_environment
install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages=site_packages, clear=clear, symlink=symlink)
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 1219, in install_python
copy_required_modules(home_dir, symlink)
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 1147, in copy_required_modules
dst_filename = change_prefix(filename, dst_prefix)
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 1111, in change_prefix
assert False, "Filename {} does not start with any of these prefixes: {}".format(filename, prefixes)
AssertionError: Filename /home/giorgio/tools/cpython-3.6.1/Lib/os.py does not start with any of these prefixes: ['/usr/local', '/usr/local']
我不想在系统上全局安装此版本的python。还有另一种方法可以使virtualenv起作用吗?
答案 0 :(得分:1)
我认为Python 3.6引入了一种创建虚拟环境的新方法,该虚拟环境不依赖于通过usr / local进行路由。
python3 -m venv /path/to/new/virtual/environment
Here是文档。
答案 1 :(得分:1)
我在尝试使用 brew 安装的 Python 3.9.5 版本在 macOS 上创建新的虚拟环境时遇到了这个错误。 (virtualenvwrapper
与 mkvirtualenv -p python3 [env-name]
)
我的命令格式通常是:
pip3 install virtualenvwrapper
不知道是什么导致这个问题搞砸了,但最终我通过运行让它再次工作:
List<Div> divs = new ArrayList<>();
divs.add(new Div(new Bubble()));
divs.add(new FunnelChart());
divs.add(new PieWithLegend());
divs.add(new Bubble());
divs.add(new FunnelChart());
divs.add(new PieWithLegend());
divs.add(new Div(new Span("AAAAAA")));
divs.add(new Div(new Span("BBBBBB")));
divs.add(new Div(new Span("CCCCCC")));
divs.add(new Div(new Span("DDDDDD")));
divs.add(new Div(new Span("EEEEEE")));
divs.add(new Div(new Span("FFFFFF")));
List<DragSource<Div>> cards = new ArrayList<>();
for (int i = 0; i < divs.size(); i++) {
DragSource<Div> temp = DragSource.create(divs.get(i));
cards.add(temp);
cards.get(i).setDragData(true);
}
VerticalLayout board = new VerticalLayout();
HorizontalLayout row1 = new HorizontalLayout();
row1.setWidthFull();
row1.add(divs.get(0), divs.get(1), divs.get(3));
HorizontalLayout row2 = new HorizontalLayout();
row2.setWidthFull();
row2.add(divs.get(4));
row2.add(divs.get(5));
row2.add(divs.get(6));
HorizontalLayout row3 = new HorizontalLayout();
row3.setWidthFull();
row3.add(divs.get(7));
row3.add(divs.get(8));
row3.add(divs.get(9));
board.add(row1, row2, row3);
add(board);
add(new Div(new Span("NOOOOOOOO")));
答案 2 :(得分:0)
实现此目的的正确方法是在将构建选项配置为本地目录并执行make install
时设置前缀。因此,如果您要安装的目录是$HOME/pythons
,则在构建目录中运行:
./configure --prefix="${HOME}/pythons"
make
make install