我正在创建Ubuntu 20.04的 AMI (Focal Fossa),并且我希望默认的 Python 版本为 3.6。
我安装了 Python 3.6,也是正确的 pip,然后像这样设置替代方案:
update-alternatives --install \
/usr/bin/python3 \
python3 \
/usr/bin/python3.6 \
10
Run Code Online (Sandbox Code Playgroud)
但是后来我遇到了许多与CPython包相关的问题,例如python3-apt
(apt_pkg, apt_inst),netifaces
,可能还有更多我还没有发现。
它们都位于/usr/lib/python3/dist-packages
并且包名称采用以下格式:
{name}.cpython-38-x86_64-linux-gnu.so
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为 Ubuntu 20.04 的默认 Python 版本是 Python 3.8。
谷歌搜索的直接解决方案是像这样链接名称:
ln -s {name}.cpython-38-x86_64-linux-gnu.so {name}.so
Run Code Online (Sandbox Code Playgroud)
IE:
ln -s apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
ln -s netifaces.cpython-38-x86_64-linux-gnu.so netifaces.so
Run Code Online (Sandbox Code Playgroud)
我尝试apt install --reinstall python3-apt
在默认 Python 版本为 3.6 时重新安装相关的包 ( ),但它不起作用,而这种链接的解决方案*.so
文件的不可扩展!
有没有办法让 Python 3.6 与系统的默认 CPython 包一起工作?
说我有一个字符串foobar
如何在[f]oobar
不专门替换f
为的情况下轻松生成类似的内容[f]
?
用例:我接受用户输入的进程名称,我想显示进程详细信息,同时消除grep
.
基本上我想检查前后相同文件的差异 sed
试图运行:
diff /opt/postTrades.sh <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh)
Run Code Online (Sandbox Code Playgroud)
和
diff <<< $(sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Run Code Online (Sandbox Code Playgroud)
和
diff <<< (sed 's/1\ MIN/10\ MIN/g' /opt/postTrades.sh) < /opt/postTrades.sh
Run Code Online (Sandbox Code Playgroud)
总是得到:
diff: missing operand after '/opt/postTrades.sh'
diff: Try 'diff --help' for more information.
Run Code Online (Sandbox Code Playgroud)
正确的做法是什么?谢谢。