java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
this error is that jar jar dependency conflicts need to remove duplicate dependencies
step 1: locate the jar where the class is located
IDEA quick search CTRL +c double click shift
locate the version to be deleted
locate the jar location of the specific class
then add the remove operation
in the pom file
Author Archives: Robins
Error in installing RVM on MacOS raw.githubusercontent.com:443 Connection failure resolution
I thought a ladder could solve the problem, but I was naive and wrote down the solution
1. Look up the connection failure domain current IP [https://site.ip138.com/raw.Githubusercontent.com/]

2. Terminal input sudo vi/etc/hosts and a corresponding IP connection failure domain configuration is added to the file, I add the Chinese Hong Kong
151.101.76.133 raw.githubusercontent.com
save after exit
3. Reexecute the install RVM command and it will be successful
How to use JavaScript in HTML
Statement: All of my blogs are personal notes, used as personal knowledge index, so there are logic problems in the narrative, the span is large, I hope to understand. Share out for everyone to learn to read, if there is a mistake hope to point out, thank you!
< script> Tag properties:
Async: Optional, indicating that the script should be downloaded immediately but should not interfere with other operations on the page
Defer: Optional, which means that the script can be deferred until the document is fully parsed and displayed, and is valid only for external scripts
SRC: Optional, representing the external file that contains the code to execute
Type: Required, representing the content type of the scripting language in which the code is written, typically text/javascript
Use external JavaScript files
In the use of & lt; script> When embedding external JavaScript code, do not appear anywhere in the code. /script>
If you want to pass < script> Element to contain an external JavaScript file, then SRC is required. SRC points to a link to an external JavaScript file, either relative or absolute
The processing of the page also stops temporarily when downloading and parsing external JavaScript files
& LT with SRC attribute; script> JavaScript code should no longer be included between tags, and even if it was, it would be ignored
External JavaScript files carry a.js extension that can be ignored, but the server must return the correct MIME type
Label location
Placed in & lt; body> At the end of the
Because: The browser processes the HTML code sequentially, if placed at the beginning will cause the browser to first download and process the JavaScript external files, thus causing the web page to be placed in the < head> And add defer= “defer”
<script type="text/javascript" defer="defer" src="xxx.js"></script>
The because: Defer property causes the script to be deferred until the entire page has been loaded, called the defer script, which is best left with only one placed at < head> In, and add Async
<script type="text/javascript" async src="xxx.js"></script>
The because: Async attribute instructs the browser to download the script file immediately, but it should not prevent other actions on the page marked async from ensuring that the script is executed in the order in which it is recommended to place the script at < body> The end of the method
Solve the problem of showing unregistered (unknown custom element) when importing components into Ant Design Pro
why
Ant – Design – Pro home page
When using the Ant-Design-Pro management framework directly, the project introduces some commonly used components on demand by default, so it will be wrong to use some rarely used components directly.
default on on demand components

error when introducing Calendar Calendar

The solution
Introduce the component you want into the lazy_use.js file. The component name is basically the English letter before the component library.

lazy_use.js file path

The introduction of
To pilot in this component, then register in the Vue(CTRL + data left to see if you can jump over)

Python error collection: NameError: name ‘numpy’ is not defined
Error message:
Use the numpy.eye() function times NameError: the name ‘numpy’ is not defined
D:\juzicode>python mod.py
Traceback (most recent call last):
File "mod.py", line 3, in
n = numpy.eye(4)
NameError: name 'numpy' is not defined

Possible reasons:
1. Did not import numPY module, but used the functions in numPY module.
Solutions:
1. Import the module NUMpy before calling the function of numpy:

Common forms of springboot2. X boot class location
1 when the startup class and controller are in the same class, add the annotation @controller in the class
2 when the startup class and controller are separated, the startup class should be placed in the root directory of the project, add the annotation @springbootapplication in the startup class,
2 when the startup class and controller are separated, the startup class should be placed in the root directory of the project, and add the annotation @componentscan in the startup class, And configure the package name to be scanned (basePackages=)
the second option is generally recommended
The project structure

startup class DemoProjectApplication
Spring MVC – enable static resource access
1. The configuration
<mvc:resources mapping="/js/**" location="/js/"/>
Mapping: represents all files under js directory
location: represents the specific file path of a static resource
2. If SpringMVC can’t find the static resource, then tomcat should find the static resource
<mvc:default-servlet-handler/>
Solution to Apple Wireless Mouse, keyboard or touchpad can not be recognized by MAC
How to solve the problem that apple’s wireless mouse, keyboard, or trackpad cannot be recognized by the Mac?Macw small series to solve the Apple wireless mouse, keyboard or trackpad can not be recognized by the Mac, I hope to help you!
The device is not recognized by the Mac
If your mouse, keyboard, or trackpad is not recognized by the Mac, follow these steps
Make sure the wireless mouse, keyboard, or trackpad is turned on and there is a slide switch at the bottom of both The Magic mouse and The Magic Mouse 2. Please slide this switch to turn on the device. On the wonderful control mouse, the green LED indicator light will be briefly on. On Miaocontrol mouse 2, the lower part of the switch will be green. Miaoke keyboard, Miaoke keyboard with numeric keypad and Miaoke Pad 2 all have a sliding switch on the back edge. Please slide this switch to turn on the device (it will be green). Early Models of Apple’s wireless keyboard had a power button on the right. Press this button and a green LED indicator light (located next to the button) will appear on the top of the device. When these devices are enabled, they will appear as connected in the Bluetooth section of System Preferences and in the Bluetooth menu of the menu bar. If the device does not appear in either location, make sure it has been charged or replaced, and that it has been paired with the Mac.
Make sure the device is set up to work with the Mac
Mio Keyboard, Mio Keyboard with numeric keypad, Mio Pad 2, and early Apple wireless models work with the Mac.
Make sure the Bluetooth is on
Use Mac laptop’s built-in trackpad or USB mouse to select apple () menu & gt; System Preferences. Then select Bluetooth and make sure it is enabled.
Make sure the device is charged
Miaoke keyboard, Miaoke keyboard with numeric keypad and Miaoke Pad 2 are all equipped with built-in rechargeable batteries. You can connect these devices to a Mac, or use a lightning to USB cable to connect to a USB power adapter to charge them. To achieve the fastest battery charging performance, be sure to turn the device on after connecting the lightning to USB cable. To check the battery life of these devices, click the Bluetooth icon in the Mac menu bar and select the device by name. If the battery of any device is low, please charge the device. If the device is not displayed, make sure to turn on the device as listed above.
Close and restart the device
If your Mac still doesn’t recognize the Apple wireless mouse, keyboard, or trackpad after following these tips, try turning off the wireless device, waiting for a moment, and then restarting it.
NPM run build failed to package err! Missing script: build
A vUE project packaging error occurred
PS D:\****\*****> npm run build
npm ERR! missing script: build
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\***\AppData\Roaming\npm-cache\_logs\2020-11-25T02_01_03_914Z-debug.log
“Build :prod” : “Ue -cli- Service build” under the scripts in package. Json
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"new": "plop"
},
SO you can’t use NPM run build to package
instead
npm run build:prod --report
In echarts label.formatter Non effectiveness
In echarts development process, while using the map, if you use the geo, and want to set the map text content and style, we can use the geo. Label. Normal. The formatter to customize these functions, but sometimes can appear the formatter is not effective, then modify the source code to solve the problem.
1, open every js file
2. GetFormattedLabel ‘
3. Find this location:
will be in the figure above, the source of the original line of code to comment, and then add two lines of code, to complete the
code as followsvar path = status == 'normal' ?'label.formatter' : 'label.' + status + >'.formatter'; var formatter = regionModel.get(path);
How to install PIL in Python 3
About Pillow and PIL
PIL (Python Imaging Library) is a powerful and convenient image processing library for Python, and is relatively well known. However, it is only supported up to Python 2.7.
PIL official website: http://www.pythonware.com/products/pil/
Pillow is a derivative of PIL, but has evolved into a more dynamic image processing library than PIL itself. The latest version is currently 3.0.0.
Pillow's Github page: https://github.com/python-pillow/Pillow
Pillow's documentation (corresponding to v3.0.0): https://pillow.readthedocs.org/en/latest/handbook/index.html
Chinese translation of Pillow's documentation (for version v2.4.0):http://pillow-cn.readthedocs.org/en/latest/
Python 3.x Installing Pillow
Installing Pillow for Python is very simple, using pip or easy_install with just one line of code.
To install using PIP from the command line.
pip install Pillow
Or use easy_install on the command line to install.
easy_install Pillow
After installation, using from PIL import Image references the library. For example.
from PIL import Image
im = Image.open("bride.jpg")
im.rotate(45).show()
Solution to the problem of installing Tkinter module in MAC
The article directories
1 solution 1.1 first make sure to uninstall python31.2 and then install xcode1.3 instead of ruby script 1.4 to install python1.5 validation
I’m going to put the 0 first
Environment:
MAC Catalina 10.15.1 Python 3.7.5 Tkinter 8.6
1. Problem Description
When I run the following demo,
import tkinter as tk # Python 3.x Version
root = tk.Tk()
label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window
root.mainloop()
The following problems may occur,
The system version of Tk is deprecated and may be removed in a future release. Please don't rely on it. Set TK SILENCE DEPRECATION=1 to suppress this warning.
This is because the version does not correspond to the original TCL/TK version of the MAC. The corresponding version is shown in link 1
1 Solutions
For python3 installed by homebrew, the following command is no longer supported
brew install python3 --with-tcl-tk
There are also ways
brew install tcl-tk
Or you can download avtiveTcl, but python3 will still be connected to the MAC version of catalina 10.15.1 (tcl8.5)
So it took a lot of effort to find a solution
1.1 first ensure that python3 is uninstalled
brew uninstall python3
brew cleanup
1.2 Then install Xcode
xcode-select --install
brew update
1.3 Replace Ruby scripts
Will “/ usr/local/Homebrew/Library/Taps/Homebrew/Homebrew – core/Formula/python. Rb” path replaced with the following script, remember to backup
class Python < Formula
desc "Interpreted, interactive, object-oriented programming language"
homepage "https://www.python.org/"
url "https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz"
sha256 "e85a76ea9f3d6c485ec1780fca4e500725a4a7bbc63c78ebc44170de9b619d94"
head "https://github.com/python/cpython.git"
bottle do
sha256 "25e0099852136c4ef1efd221247d0f67aa71f7b624211b98898f8b46c612f40d" => :mojave
sha256 "b65fecb4bb8350359488d6ca4c0a5a343f658f424d101a45e28d5a72de7f455c" => :high_sierra
sha256 "b07ec3a40f58fa317e1bb937992dc0dca7d60812c60de99bde14fbadb6c27cc5" => :sierra
end
# setuptools remembers the build flags python is built with and uses them to
# build packages later. Xcode-only systems need different flags.
pour_bottle?do
reason <<~EOS
The bottle needs the Apple Command Line Tools to be installed.
You can install them, if desired, with:
xcode-select --install
EOS
satisfy { MacOS::CLT.installed?}
end
depends_on "pkg-config" => :build
depends_on "gdbm"
depends_on "openssl"
depends_on "readline"
depends_on "sqlite"
depends_on "xz"
depends_on "tcl-tk" # as apple's one is shiiiiite
skip_clean "bin/pip3", "bin/pip-3.4", "bin/pip-3.5", "bin/pip-3.6", "bin/pip-3.7"
skip_clean "bin/easy_install3", "bin/easy_install-3.4", "bin/easy_install-3.5", "bin/easy_install-3.6", "bin/easy_install-3.7"
resource "setuptools" do
url "https://files.pythonhosted.org/packages/c2/f7/c7b501b783e5a74cf1768bc174ee4fb0a8a6ee5af6afa92274ff964703e0/setuptools-40.8.0.zip"
sha256 "6e4eec90337e849ade7103723b9a99631c1f0d19990d6e8412dc42f5ae8b304d"
end
resource "pip" do
url "https://files.pythonhosted.org/packages/36/fa/51ca4d57392e2f69397cd6e5af23da2a8d37884a605f9e3f2d3bfdc48397/pip-19.0.3.tar.gz"
sha256 "6e6f197a1abfb45118dbb878b5c859a0edbdd33fd250100bc015b67fded4b9f2"
end
resource "wheel" do
url "https://files.pythonhosted.org/packages/b7/cf/1ea0f5b3ce55cacde1e84cdde6cee1ebaff51bd9a3e6c7ba4082199af6f6/wheel-0.33.1.tar.gz"
sha256 "66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d"
end
# Homebrew's tcl-tk is built in a standard unix fashion (due to link errors)
# so we have to stop python from searching for frameworks and linking against
# X11.
patch :DATA
def install
# Unset these so that installing pip and setuptools puts them where we want
# and not into some other Python the user has installed.
ENV["PYTHONHOME"] = nil
ENV["PYTHONPATH"] = nil
xy = (buildpath/"configure.ac").read.slice(/PYTHON_VERSION, (3\.\d)/, 1)
lib_cellar = prefix/"Frameworks/Python.framework/Versions/#{xy}/lib/python#{xy}"
args = %W[
--prefix=#{prefix}
--enable-ipv6
--datarootdir=#{share}
--datadir=#{share}
--enable-framework=#{frameworks}
--enable-loadable-sqlite-extensions
--without-ensurepip
--with-dtrace
--with-openssl=#{Formula["openssl"].opt_prefix}
]
args << "--without-gcc" if ENV.compiler == :clang
cflags = []
ldflags = []
cppflags = []
if MacOS.sdk_path_if_needed
# Help Python's build system (setuptools/pip) to build things on SDK-based systems
# The setup.py looks at "-isysroot" to get the sysroot (and not at --sysroot)
cflags << "-isysroot #{MacOS.sdk_path}" << "-I#{MacOS.sdk_path}/usr/include"
ldflags << "-isysroot #{MacOS.sdk_path}"
# For the Xlib.h, Python needs this header dir with the system Tk
# Yep, this needs the absolute path where zlib needed a path relative
# to the SDK.
# as external tck is added later on uncomment this
# cflags << "-I#{MacOS.sdk_path}/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers"
end
# Avoid linking to libgcc https://mail.python.org/pipermail/python-dev/2012-February/116205.html
args << "MACOSX_DEPLOYMENT_TARGET=#{MacOS.version}"
# We want our readline! This is just to outsmart the detection code,
# superenv makes cc always find includes/libs!
inreplace "setup.py",
"do_readline = self.compiler.find_library_file(lib_dirs, 'readline')",
"do_readline = '#{Formula["readline"].opt_lib}/libhistory.dylib'"
inreplace "setup.py" do |s|
s.gsub! "sqlite_setup_debug = False", "sqlite_setup_debug = True"
s.gsub! "for d_ in inc_dirs + sqlite_inc_paths:",
"for d_ in ['#{Formula["sqlite"].opt_include}']:"
end
# Allow python modules to use ctypes.find_library to find homebrew's stuff
# even if homebrew is not a /usr/local/lib. Try this with:
# `brew install enchant && pip install pyenchant`
inreplace "./Lib/ctypes/macholib/dyld.py" do |f|
f.gsub! "DEFAULT_LIBRARY_FALLBACK = [", "DEFAULT_LIBRARY_FALLBACK = [ '#{HOMEBREW_PREFIX}/lib',"
f.gsub! "DEFAULT_FRAMEWORK_FALLBACK = [", "DEFAULT_FRAMEWORK_FALLBACK = [ '#{HOMEBREW_PREFIX}/Frameworks',"
end
# ADD tcl-tk include/lib paths
tcl_tk = Formula["tcl-tk"].opt_prefix
cppflags << "-I#{tcl_tk}/include"
ldflags << "-L#{tcl_tk}/lib"
args << "CFLAGS=#{cflags.join(" ")}" unless cflags.empty?
args << "LDFLAGS=#{ldflags.join(" ")}" unless ldflags.empty?
args << "CPPFLAGS=#{cppflags.join(" ")}" unless cppflags.empty?
system "./configure", *args
system "make"
ENV.deparallelize do
# Tell Python not to install into /Applications (default for framework builds)
system "make", "install", "PYTHONAPPSDIR=#{prefix}"
system "make", "frameworkinstallextras", "PYTHONAPPSDIR=#{pkgshare}"
end
# Any .app get a " 3" attached, so it does not conflict with python 2.x.
Dir.glob("#{prefix}/*.app") { |app| mv app, app.sub(/\.app$/, " 3.app") }
# Prevent third-party packages from building against fragile Cellar paths
inreplace Dir[lib_cellar/"**/_sysconfigdata_m_darwin_darwin.py",
lib_cellar/"config*/Makefile",
frameworks/"Python.framework/Versions/3*/lib/pkgconfig/python-3.?.pc"],
prefix, opt_prefix
# Help third-party packages find the Python framework
inreplace Dir[lib_cellar/"config*/Makefile"],
/^LINKFORSHARED=(.*)PYTHONFRAMEWORKDIR(.*)/,
"LINKFORSHARED=\\1PYTHONFRAMEWORKINSTALLDIR\\2"
# Fix for https://github.com/Homebrew/homebrew-core/issues/21212
inreplace Dir[lib_cellar/"**/_sysconfigdata_m_darwin_darwin.py"],
%r{('LINKFORSHARED': .*?)'(Python.framework/Versions/3.\d+/Python)'}m,
"\\1'#{opt_prefix}/Frameworks/\\2'"
# A fix, because python and python3 both want to install Python.framework
# and therefore we can't link both into HOMEBREW_PREFIX/Frameworks
# https://github.com/Homebrew/homebrew/issues/15943
["Headers", "Python", "Resources"].each { |f| rm(prefix/"Frameworks/Python.framework/#{f}") }
rm prefix/"Frameworks/Python.framework/Versions/Current"
# Symlink the pkgconfig files into HOMEBREW_PREFIX so they're accessible.
(lib/"pkgconfig").install_symlink Dir["#{frameworks}/Python.framework/Versions/#{xy}/lib/pkgconfig/*"]
# Remove the site-packages that Python created in its Cellar.
(prefix/"Frameworks/Python.framework/Versions/#{xy}/lib/python#{xy}/site-packages").rmtree
%w[setuptools pip wheel].each do |r|
(libexec/r).install resource(r)
end
# Install unversioned symlinks in libexec/bin.
{
"idle" => "idle3",
"pydoc" => "pydoc3",
"python" => "python3",
"python-config" => "python3-config",
}.each do |unversioned_name, versioned_name|
(libexec/"bin").install_symlink (bin/versioned_name).realpath => unversioned_name
end
end
def post_install
ENV.delete "PYTHONPATH"
xy = (prefix/"Frameworks/Python.framework/Versions").children.min.basename.to_s
site_packages = HOMEBREW_PREFIX/"lib/python#{xy}/site-packages"
site_packages_cellar = prefix/"Frameworks/Python.framework/Versions/#{xy}/lib/python#{xy}/site-packages"
# Fix up the site-packages so that user-installed Python software survives
# minor updates, such as going from 3.3.2 to 3.3.3:
# Create a site-packages in HOMEBREW_PREFIX/lib/python#{xy}/site-packages
site_packages.mkpath
# Symlink the prefix site-packages into the cellar.
site_packages_cellar.unlink if site_packages_cellar.exist?
site_packages_cellar.parent.install_symlink site_packages
# Write our sitecustomize.py
rm_rf Dir["#{site_packages}/sitecustomize.py[co]"]
(site_packages/"sitecustomize.py").atomic_write(sitecustomize)
# Remove old setuptools installations that may still fly around and be
# listed in the easy_install.pth. This can break setuptools build with
# zipimport.ZipImportError: bad local file header
# setuptools-0.9.8-py3.3.egg
rm_rf Dir["#{site_packages}/setuptools*"]
rm_rf Dir["#{site_packages}/distribute*"]
rm_rf Dir["#{site_packages}/pip[-_.][0-9]*", "#{site_packages}/pip"]
%w[setuptools pip wheel].each do |pkg|
(libexec/pkg).cd do
system bin/"python3", "-s", "setup.py", "--no-user-cfg", "install",
"--force", "--verbose", "--install-scripts=#{bin}",
"--install-lib=#{site_packages}",
"--single-version-externally-managed",
"--record=installed.txt"
end
end
rm_rf [bin/"pip", bin/"easy_install"]
mv bin/"wheel", bin/"wheel3"
# Install unversioned symlinks in libexec/bin.
{
"easy_install" => "easy_install-#{xy}",
"pip" => "pip3",
"wheel" => "wheel3",
}.each do |unversioned_name, versioned_name|
(libexec/"bin").install_symlink (bin/versioned_name).realpath => unversioned_name
end
# post_install happens after link
%W[pip3 pip#{xy} easy_install-#{xy} wheel3].each do |e|
(HOMEBREW_PREFIX/"bin").install_symlink bin/e
end
# Help distutils find brewed stuff when building extensions
include_dirs = [HOMEBREW_PREFIX/"include", Formula["openssl"].opt_include,
Formula["sqlite"].opt_include]
library_dirs = [HOMEBREW_PREFIX/"lib", Formula["openssl"].opt_lib,
Formula["sqlite"].opt_lib]
# Again tcl-tk
include_dirs << Formula["tcl-tk"].opt_include
library_dirs << Formula["tcl-tk"].opt_lib
cfg = prefix/"Frameworks/Python.framework/Versions/#{xy}/lib/python#{xy}/distutils/distutils.cfg"
cfg.atomic_write <<~EOS
[install]
prefix=#{HOMEBREW_PREFIX}
[build_ext]
include_dirs=#{include_dirs.join ":"}
library_dirs=#{library_dirs.join ":"}
EOS
end
def sitecustomize
xy = (prefix/"Frameworks/Python.framework/Versions").children.min.basename.to_s
<<~EOS
# This file is created by Homebrew and is executed on each python startup.
# Don't print from here, or else python command line scripts may fail!
# <https://docs.brew.sh/Homebrew-and-Python>
import re
import os
import sys
if sys.version_info[0] != 3:
# This can only happen if the user has set the PYTHONPATH for 3.x and run Python 2.x or vice versa.
# Every Python looks at the PYTHONPATH variable and we can't fix it here in sitecustomize.py,
# because the PYTHONPATH is evaluated after the sitecustomize.py. Many modules (e.g. PyQt4) are
# built only for a specific version of Python and will fail with cryptic error messages.
# In the end this means: Don't set the PYTHONPATH permanently if you use different Python versions.
exit('Your PYTHONPATH points to a site-packages dir for Python 3.x but you are running Python ' +
str(sys.version_info[0]) + '.x!\\n PYTHONPATH is currently: "' + str(os.environ['PYTHONPATH']) + '"\\n' +
' You should `unset PYTHONPATH` to fix this.')
# Only do this for a brewed python:
if os.path.realpath(sys.executable).startswith('#{rack}'):
# Shuffle /Library site-packages to the end of sys.path
library_site = '/Library/Python/#{xy}/site-packages'
library_packages = [p for p in sys.path if p.startswith(library_site)]
sys.path = [p for p in sys.path if not p.startswith(library_site)]
# .pth files have already been processed so don't use addsitedir
sys.path.extend(library_packages)
# the Cellar site-packages is a symlink to the HOMEBREW_PREFIX
# site_packages; prefer the shorter paths
long_prefix = re.compile(r'#{rack}/[0-9\._abrc]+/Frameworks/Python\.framework/Versions/#{xy}/lib/python#{xy}/site-packages')
sys.path = [long_prefix.sub('#{HOMEBREW_PREFIX/"lib/python#{xy}/site-packages"}', p) for p in sys.path]
# Set the sys.executable to use the opt_prefix, unless explicitly set
# with PYTHONEXECUTABLE:
if 'PYTHONEXECUTABLE' not in os.environ:
sys.executable = '#{opt_bin}/python#{xy}'
EOS
end
def caveats
if prefix.exist?
xy = (prefix/"Frameworks/Python.framework/Versions").children.min.basename.to_s
else
xy = version.to_s.slice(/(3\.\d)/) || "3.7"
end
<<~EOS
Python has been installed as
#{HOMEBREW_PREFIX}/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
#{opt_libexec}/bin
If you need Homebrew's Python 2.7 run
brew install python@2
You can install Python packages with
pip3 install <package>
They will install into the site-package directory
#{HOMEBREW_PREFIX/"lib/python#{xy}/site-packages"}
See: https://docs.brew.sh/Homebrew-and-Python
EOS
end
test do
xy = (prefix/"Frameworks/Python.framework/Versions").children.min.basename.to_s
# Check if sqlite is ok, because we build with --enable-loadable-sqlite-extensions
# and it can occur that building sqlite silently fails if OSX's sqlite is used.
system "#{bin}/python#{xy}", "-c", "import sqlite3"
# Check if some other modules import. Then the linked libs are working.
system "#{bin}/python#{xy}", "-c", "import tkinter; root = tkinter.Tk()"
system "#{bin}/python#{xy}", "-c", "import _gdbm"
system "#{bin}/python#{xy}", "-c", "import zlib"
system bin/"pip3", "list", "--format=columns"
end
end
__END__
diff --git a/setup.py b/setup.py
index 2779658..902d0eb 100644
--- a/setup.py
+++ b/setup.py
@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext):
# Rather than complicate the code below, detecting and building
# AquaTk is a separate method. Only one Tkinter will be built on
# Darwin - either AquaTk, if it is found, or X11 based Tk.
- if (host_platform == 'darwin' and
- self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
- return
# Assume we haven't found any of the libraries or include files
# The versions with dots are used on Unix, and the versions without
@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext):
if dir not in include_dirs:
include_dirs.append(dir)
- # Check for various platform-specific directories
- if host_platform == 'sunos5':
- include_dirs.append('/usr/openwin/include')
- added_lib_dirs.append('/usr/openwin/lib')
- elif os.path.exists('/usr/X11R6/include'):
- include_dirs.append('/usr/X11R6/include')
- added_lib_dirs.append('/usr/X11R6/lib64')
- added_lib_dirs.append('/usr/X11R6/lib')
- elif os.path.exists('/usr/X11R5/include'):
- include_dirs.append('/usr/X11R5/include')
- added_lib_dirs.append('/usr/X11R5/lib')
- else:
- # Assume default location for X11
- include_dirs.append('/usr/X11/include')
- added_lib_dirs.append('/usr/X11/lib')
-
# If Cygwin, then verify that X is installed before proceeding
if host_platform == 'cygwin':
x11_inc = find_file('X11/Xlib.h', [], include_dirs)
@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext):
if host_platform in ['aix3', 'aix4']:
libs.append('ld')
- # Finally, link with the X11 libraries (not appropriate on cygwin)
- if host_platform != "cygwin":
- libs.append('X11')
-
ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
define_macros=[('WITH_APPINIT', 1)] + defs,
include_dirs = include_dirs,
This is python3.7.5 installed, replacing the url on line 4 first for different versions such as version 3.7.4
url "https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz"
url "https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz"//针对python3.7.4
Then enter the url “https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz” to download xz file to the desktop,
The terminal then runs as follows to get the sha256 value matching the corresponding Python version
openssl dgst -sha256 /Desktop/Python-3.7.4.tar.xz
Then replace the 5 sha256 "e85a76ea9f3d6c485ec1780fca4e500725a4a7bbc63c78ebc44170de9b619d94 </ code>"
1.4 install python
The terminal input the following command and wait for the completion of installation
HOMEBREW_NO_AUTO_UPDATE=1 brew install --build-from-source python
1.5 inspection
Remember to set the default Python path for brew installation, and the terminal therefore enters the following command
python3
import tkinter
tkinter.TkVersion
You should see the tcl8.6 version of output python3
