Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决
问题描述:
mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本。
使用Pycharm开发Python项目没有遇到什么问题。但是在java项目中调用py脚本的话,就有问题了。我的项目需要将Pycharm开发好的py脚本(多个.py文件),拷贝到java项目中,在java项目(是用IDEA开发工具)中,如果直接是用鼠标右键运行py脚本的话是没有问题的,将py脚本依赖的第三方库直接拷贝到py脚本所在地目录下然后再用java去调用也没有问题,但如果py脚本中导入了python的第三方库,就会有问题,具体表现为java调用后控制台没有任何输出,也不报错。
解决方式主要参考了这篇博客:
https://www.cnblogs.com/BlueSkyyj/p/9455955.html
下面是我的mac笔记本中的python环境,重点在于配置正确的python环境PATH变量:
B000000067100V:~ v_shiyanjun$ which python
/Users/v_shiyanjun/anaconda3/bin/python
B000000067100V:~ v_shiyanjun$ /Users/v_shiyanjun/anaconda3/bin/python -V
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python --version
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python3 --version
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python -V
Python 3.7.0
B000000067100V:~ v_shiyanjun$ python3 -V
Python 3.7.0
B000000067100V:~ v_shiyanjun$ cat ~/.bash_profile
export M2_HOME=/Users/v_shiyanjun/soft/apache-maven-3.5.4
export PATH=$PATH:$M2_HOME/bin
export PATH=$PATH:/usr/local/mysql/bin # Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
#PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
PATH="/usr/local/lib/python3.7/site-packages:${PATH}"
export PATH
# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/v_shiyanjun/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/Users/v_shiyanjun/anaconda3/etc/profile.d/conda.sh" ]; then
. "/Users/v_shiyanjun/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/Users/v_shiyanjun/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda init <<<
B000000067100V:~ v_shiyanjun$
执行 source ~/.bash_profile 立即生效
设置完环境变量后,我们 想要执行python3,仍然需要 输入python3 or python3.7方可,也挺麻烦,可以通过设置软连接来实现
设置软连接
命令:
sudo ln -f /usr/local/bin/python3.7 /usr/local/bin/python
即通过这个设置,可以实现输入python 就是执行的python3.7
Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决的更多相关文章
- java中怎么调用python 脚本
调用方法: import java.io.BufferedReader; import java.io.InputStreamReader; public class PythonInvoke { p ...
- Mac上微信小程序官方开发工具卡死的问题
Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...
- win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件
win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件 1.去git上下载react-devtools文件到本地,https://github.com/fac ...
- PHPStorm.WebStrom等系列官方开发工具配置本地项目与运程服务器同步
PHPStorm.WebStrom配置本地项目与运程服务器同步 说明:PHPStorm.WebStrom等官方的系统开发工具配置本地项目与运程服务器同步的方法都基本一致没有,几乎没有什么不同之处,我们 ...
- Intellij Idea 工具在java文件中如何避免 import .*包
Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...
- 在Java项目中整合Scala
Scala是一个运行在Java JVM上的面向对象的语言.它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程.具有这些优势,使得我最近很想在 ...
- 实战派 | Java项目中玩转Redis6.0客户端缓存!
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...
- JAVA项目中常用的异常处理情况总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
- Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...
随机推荐
- antd + node.js + mongoose小总结
最近开发太忙,都没时间更新博客,想通过这篇博客总结一下相关经验,以备后续能用到: 一.antd 1.onChange of undefined问题:可能是页面中表单取了相同的名称,也可能是在遍历时表单 ...
- XamarinAndroid组件教程设置动画的时长参数
XamarinAndroid组件教程设置动画的时长参数 在添加动画的时候,开发者还可以动画参数进行设置,如动画持续的时长.插值器等.下面依次讲解动画参数的设置方法. 1.设置动画时长 设置动画持续的时 ...
- ES6快速入门(一)函数与作用域
ES6快速入门 一.块级绑定 1.var声明与变量提升 使用var声明的变量,不论在何处都会被视为(声明)在函数级作用域顶部的位置发生. function getValue(condition) { ...
- [ONTAK2015]Tasowanie
[ONTAK2015]Tasowanie 题目大意: 给你两个长度分别为\(n(n\le2\times10^5)\)的序列\(A,B\),将\(A,B\)进行二路归并,使得最后得到的序列字典序最小.求 ...
- 利用api模拟百度搜索功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [leetcode] 329. Longest Increasing Path in a Matrix My Submissions Question
在递归调用的函数中使用了max = INT_MIN,结果报超时错误,改为max=0就对了,虽然在这题中最小就为0, 看来在之后最小为0的时候,就不要使用INT_MIN了.
- [NOIP2018]OI之旅的中转站
咳咳(清嗓子) 好了,现在NOIP2018结束了 作为初三的一名没考到一等的选手,非常抱歉,我不能继续参加了 那么……我接下来的目标就是中考了(虽然现实很残酷) 能不能继续自己的OI路,就要看自己了 ...
- C++学习笔记52:查找
//函数查找 template <class T> int seqSearch(const T list[], int n, const T &key) { ; i < n; ...
- javaweb数据库编程代码详细讲解
import java.sql.*; /*默写数据库练习数据库编程及注释讲解代码*/ public class Main{ public static void main(String[]args)t ...
- django项目的新建相关的命令及配置
创建工程 django-admin startproject 工程名称 运行开发服务器 python manage.py runserver 创建子应用 python manage.py st ...