我在服务器中解压缩,配置并使用make作为安装包。
但是,我无法使用 make install 。我收到了错误
[~/wepapps/python/Python-2.6.1]# make install
/usr/bin/install -c python /usr/local/bin/python2.6
/usr/bin/install: cannot create regular file `/usr/local/bin/python2.6': Permission denied
make: *** [altbininstall] Error 1
我用
运行文件夹chmod +x Python-2.6.1
我仍然遇到同样的错误。
如何在没有sudo访问的情况下运行 make install ?
答案 0 :(得分:94)
如何安装到我的主目录下的路径?
mkdir /home/masi/.local
cd Python-2.6.1
make clean
./configure --prefix=/home/masi/.local
make
make install
然后使用:
运行/home/masi/.local/bin/python
同样,如果您有需要自己的Python用户版本的脚本(例如CGI),您必须明确告诉他们:
#!/home/masi/.local/bin/python
而不是使用“#!/ usr / bin / env python”将选择的默认系统Python。
您可以更改PATH设置,只需从运行该版本的控制台输入“python”,但对于在不同用户下运行的Web应用程序无效。
如果编译链接到Python的东西(例如mod_wsgi),你必须告诉它在哪里找到你的Python,否则它将使用系统。这通常是这样的:
./configure --prefix=/home/masi/.local --with-python=/home/masi/.local
对于像MySQLdb这样的其他基于setup.py的扩展,您只需使用正确版本的Python运行setup.py脚本:
/home/masi/.local/bin/python setup.py install
答案 1 :(得分:7)
从2020年开始,假设系统具有必要的构建依赖项,pyenv
是未经sudo许可安装Python的最佳选择。
# Install pyenv
$ curl https://pyenv.run | bash
# Follow the instruction to modify ~/.bashrc
# Install the latest Python from source code
$ pyenv install 3.8.3
# Check installed Python versions
$ pyenv versions
# Switch Python version
$ pyenv global 3.8.3
# Check where Python is actually installed
$ pyenv prefix
/home/admin/.pyenv/versions/3.8.3
# Check the current Python version
$ python -V
Python 3.8.3
答案 2 :(得分:2)
你不能;反正不是/usr
。只有超级用户才能写入这些目录。尝试将Python安装到主目录下的路径中。
答案 3 :(得分:2)
扩展bobince的答案,如果您的系统中没有安装readline开发包,并且您没有root访问权限,则会出现问题。
编译Python时没有readline,你的箭头键在解释器中不起作用。但是,您可以按如下方式安装readline独立包:Adding Readline Functionality Without Recompiling Python
另一方面,如果你更喜欢使用readline的本地安装来编译python,那么就是这样。
在做bobince告诉之前,编译并安装readline。以下是执行此操作的步骤:
然后,将此行添加到.bash_profile脚本中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/lib
最后但并非最不重要的是,执行以下命令
export LDFLAGS="-L$HOME/.local"
我希望这有助于某人!