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.显示程序 ...
随机推荐
- XamarinAndroid组件教程RecylerView适配器设置动画
XamarinAndroid组件教程RecylerView适配器设置动画 本小节将讲解动画相关设置,如动画的时长.插值器以及复合动画等. 1.设置动画时长 设置动画持续的时间可以使用Animation ...
- C#中的BeginInvoke和EndEndInvoke 异步问题
- tomcat端口被占用的问题
在dos下,输入 netstat -ano|findstr 8080 //说明:查看占用8080端口的进程 显示占用端口的进程 taskkill /pid 6856 /f //说明, ...
- DevC++出现[Error] ld returned 1 exit status,如何解决才好呢?
回答: 代码在vc中没问题,虽然没用过DevC++. 可以把 ld returned 1 exit status前面的详细出错说出来程序是没有问题的,可能的问题最有可能是以下2个1.是你的程序已经在运 ...
- [USACO18JAN]Stamp Painting
Description: Bessie想拿\(M\) 种颜色的长为\(K\) 的图章涂一个长为\(N\) 的迷之画布.假设他选择涂一段区间,则这段区间长度必须为\(K\) ,且涂完后该区间颜色全变成图 ...
- Jmeter5 实现多机集群压测(局域网组成多机集群)
想要模拟高并发用户访问的场景,用Jmeter5实现的话,单靠一台PC机,资源是不够的,包括单机的内存.使用端口数量等,所以最好是通过多台PC机组成几个集群来对服务器进行压测. 本文目录: 1.软硬件配 ...
- 游历校园 [COGS 614] [欧拉图]
Description 刷完牙洗完脸,黄黄同学就要上课去了.可是黄黄同学每次去上课时总喜欢把校园里面的每条路都走一遍,当然,黄黄同学想每条路也只走一遍.我们一般人很可能对一些地图是办不到每条路走一遍且 ...
- JS面向对象之创建对象模式
虽然Object构造函数或对象字面量都可以用来创建单个对象,但都有一个缺点,使用同一个接口来创建对象,会产生大量重复的代码,为解决这个问题,引出下列方法 1.工厂模式 抽象了创建具体对象的过程,用函数 ...
- usaco-5.3.3Network of Schools 校园网
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意如果 B 在 A 学校的分发列表中,那么 A 不必也在 B 学校的列表中. 你要 ...
- linux下下载redis,并且编译
1:下载.解压.编译$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz $ tar xzf redis-3.0.6.tar.gz $ ...