我正在使用开源库。他们添加了我想要的新功能,但是我还不能升级该库。
我下载了相关的.py
文件,并在我的代码中将其引用为:
原文:
from airflow.contrib.operators.bigquery_check_operator import BigQueryCheckOperator
新功能:
from /home/.../airflow/MyOperators/bigquery_check_operator.py import BigQueryCheckOperator as MyBigQueryCheckOperator
但是,这不起作用。它给出了无效的语法错误。
基本上我想将此文件引用为MyBigQueryCheckOperator
,而原始文件仍为BigQueryCheckOperator
我在做什么错了?
答案 0 :(得分:2)
这是无效的语法。您不能在python导入路径中使用/
或文件扩展名。
from /home/.../airflow/MyOperators/bigquery_check_operator.py import BigQueryCheckOperator as MyBigQueryCheckOperator
您应将文件移至相对目录,然后使用常规的python导入语法将其导入。
from newversion.bigquery_check_operator import BigQueryCheckOperator as MyBigQueryCheckOperator
答案 1 :(得分:1)
您可以通过将软件包的路径附加到sys.path
中来临时添加软件包的路径。
尝试:
import sys
sys.path.append('/home/.../airflow/MyOperators/')
from bigquery_check_operator import BigQueryCheckOperator
相反。
答案 2 :(得分:-1)
公共类Home扩展了AppCompatActivity {
EditText txt_name,txt_password;
Button btn_login,btn_register;
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
dbHelper=new DBHelper(this);
txt_name=(EditText)findViewById(R.id.txt_name);
txt_password=(EditText)findViewById(R.id.txt_password);
btn_login=(Button) findViewById(R.id.btn_login);
btn_register=(Button) findViewById(R.id.btn_register);
}
public void buttonClick(View view){
switch (view.getId()){
case R.id.btn_login:
List<User> userList=dbHelper.readAllInfo();
int id=0;
for (int i=0;i<userList.size();i++){
User user = userList.get(i);
if(user.getUserName().equals(txt_name.getText().toString()) && user.getPassword().equals(txt_password.getText().toString())){
id=user.getId();
}
}
if(id>0){
Toast.makeText(this,"Login Successful!!!",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this,EditProfile.class);
intent.putExtra("ID",id);
startActivity(intent);
this.finish();
break;
}
else
Toast.makeText(this,"Login Unsuccessful!!!",Toast.LENGTH_SHORT).show();
break;
case R.id.btn_register:
Intent intent = new Intent(this,ProfileManagement.class);
startActivity(intent);
break;
}
}
}
公共最终课程UserProfile {
private UserProfile(){}
public static class Users implements BaseColumns{
public final static String TABLE_NAME="UserInfo";
public final static String COLUMN_NAME="userName";
public final static String COLUMN_PASSWORD="password";
public final static String COLUMN_DOB="dateOfBirth";
public final static String COLUMN_GENDER="gender";
}
}
公共类用户{
private int id;
private String userName;
private String password;
private String dob;
private String gender;
public User() {
}
public User(int id, String userName, String password, String dob, String gender) {
this.id = id;
this.userName = userName;
this.password = password;
this.dob = dob;
this.gender = gender;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
公共类ProfileManagement扩展了AppCompatActivity {
EditText txt_name,txt_password,txt_date;
RadioGroup rb_group;
RadioButton rb_male,rb_female;
Button btn_update;
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile_management);
dbHelper=new DBHelper(this);
txt_name=(EditText)findViewById(R.id.txt_name);
txt_password=(EditText)findViewById(R.id.txt_password);
txt_date=(EditText)findViewById(R.id.txt_date);
rb_group=(RadioGroup)findViewById(R.id.rb_group);
rb_male=(RadioButton)findViewById(R.id.rb_male);
rb_female=(RadioButton)findViewById(R.id.rb_female);
btn_update=(Button) findViewById(R.id.btn_update);
}
public void PMbuttonClick(View view){
User user= new User();
user.setUserName(txt_name.getText().toString());
user.setPassword(txt_password.getText().toString());
user.setDob(txt_date.getText().toString());
if(rb_group.getCheckedRadioButtonId()==R.id.rb_male)
user.setGender("Male");
else
user.setGender("Female");
long newId=dbHelper.addInfo(user);
if(newId>0) {
Toast.makeText(this, "Successfully Added", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this,Home.class);
startActivity(intent);
finish();
}
else
Toast.makeText(this,"Unsuccessful Insertion!!!",Toast.LENGTH_SHORT).show();
}
}
公共类EditProfile扩展了AppCompatActivity {
EditText txt_name,txt_password,txt_date;
RadioButton rb_male,rb_female;
Button btn_edit,btn_delete,btn_search;
DBHelper dbHelper;
int id;
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_profile);
Intent intent=getIntent();
id=intent.getIntExtra("ID",-1);
dbHelper=new DBHelper(this);
user=new User();
txt_name=(EditText)findViewById(R.id.txt_name);
txt_password=(EditText)findViewById(R.id.txt_password);
txt_date=(EditText)findViewById(R.id.txt_date);
rb_male=(RadioButton)findViewById(R.id.rb_male);
rb_female=(RadioButton)findViewById(R.id.rb_female);
btn_search=(Button) findViewById(R.id.btn_search);
btn_delete=(Button) findViewById(R.id.btn_delete);
btn_edit=(Button) findViewById(R.id.btn_edit);
}
public void EPbuttonClick(View view){
switch (view.getId()){
case R.id.btn_search:
user=dbHelper.readAllInfo(id);
txt_name.setText(user.getUserName());
txt_password.setText(user.getPassword());
txt_date.setText(user.getDob());
if(user.getGender().equals("Male"))
rb_male.setChecked(true);
else
rb_female.setChecked(true);
break;
case R.id.btn_delete:
if(dbHelper.deleteInfo(id)){
Toast.makeText(this,"Successfully Deleted",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this,Home.class);
startActivity(intent);
}
break;
case R.id.btn_edit:
user.setId(id);
user.setUserName(txt_name.getText().toString());
user.setPassword(txt_password.getText().toString());
user.setDob(txt_date.getText().toString());
if(rb_male.isChecked())
user.setGender("Male");
else
user.setGender("Female");
if(dbHelper.updateInfo(user))
Toast.makeText(this,"Successfully Updated",Toast.LENGTH_SHORT).show();
else
Toast.makeText(this,"Update Unsuccessful",Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent(this,Home.class);
startActivity(intent);
}
}
公共类DBHelper扩展了SQLiteOpenHelper {
public static final String DATABASE="user.db";
public DBHelper(Context context) {
super(context, DATABASE, null, 1);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query="CREATE TABLE "+ UserProfile.Users.TABLE_NAME +" ( "+
UserProfile.Users._ID +" INTEGER PRIMARY KEY, "+
UserProfile.Users.COLUMN_NAME +" TEXT, "+
UserProfile.Users.COLUMN_PASSWORD +" TEXT, "+
UserProfile.Users.COLUMN_DOB +" TEXT, "+
UserProfile.Users.COLUMN_GENDER +" TEXT);";
sqLiteDatabase.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS "+ UserProfile.Users.TABLE_NAME);
onCreate(sqLiteDatabase);
}
public long addInfo(User user){
SQLiteDatabase db=getWritableDatabase();
ContentValues values=new ContentValues();
values.put(UserProfile.Users.COLUMN_NAME,user.getUserName());
values.put(UserProfile.Users.COLUMN_PASSWORD,user.getPassword());
values.put(UserProfile.Users.COLUMN_DOB,user.getDob());
values.put(UserProfile.Users.COLUMN_GENDER,user.getGender());
long id=db.insert(UserProfile.Users.TABLE_NAME,null,values);
return id;
}
public boolean updateInfo(User user){
SQLiteDatabase db=getReadableDatabase();
ContentValues values=new ContentValues();
values.put(UserProfile.Users.COLUMN_NAME,user.getUserName());
values.put(UserProfile.Users.COLUMN_PASSWORD,user.getPassword());
values.put(UserProfile.Users.COLUMN_DOB,user.getDob());
values.put(UserProfile.Users.COLUMN_GENDER,user.getGender());
String selection= UserProfile.Users._ID+" = ?";
String[] selectionArgs={Integer.toString(user.getId())};
int count=db.update(UserProfile.Users.TABLE_NAME,values,selection,selectionArgs);
if (count>0)
return true;
else
return false;
}
public List<User> readAllInfo(){
SQLiteDatabase db=getReadableDatabase();
String[] projection={UserProfile.Users._ID,
UserProfile.Users.COLUMN_NAME,
UserProfile.Users.COLUMN_PASSWORD,
UserProfile.Users.COLUMN_DOB,
UserProfile.Users.COLUMN_GENDER};
String order= UserProfile.Users._ID+" ASC";
Cursor cursor = db.query(UserProfile.Users.TABLE_NAME,projection,null,null,null,null,order);
List<User> list = new ArrayList();
User user=new User();
while(cursor.moveToNext()){
user.setId(cursor.getInt(cursor.getColumnIndex(UserProfile.Users._ID)));
user.setUserName(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_NAME)));
user.setPassword(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_PASSWORD)));
user.setDob(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_DOB)));
user.setGender(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_GENDER)));
list.add(user);
}
return list;
}
public User readAllInfo(int id){
SQLiteDatabase db=getReadableDatabase();
String[] projection={UserProfile.Users._ID,
UserProfile.Users.COLUMN_NAME,
UserProfile.Users.COLUMN_PASSWORD,
UserProfile.Users.COLUMN_DOB,
UserProfile.Users.COLUMN_GENDER};
String selection= UserProfile.Users._ID+" = ?";
String[] selectionArgs={Integer.toString(id)};
String order= UserProfile.Users._ID+" ASC";
Cursor cursor = db.query(UserProfile.Users.TABLE_NAME,projection,selection,selectionArgs,null,null,order);
User user=new User();
while(cursor.moveToNext()){
user.setId(cursor.getInt(cursor.getColumnIndex(UserProfile.Users._ID)));
user.setUserName(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_NAME)));
user.setPassword(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_PASSWORD)));
user.setDob(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_DOB)));
user.setGender(cursor.getString(cursor.getColumnIndex(UserProfile.Users.COLUMN_GENDER)));
}
return user;
}
public boolean deleteInfo(int id){
SQLiteDatabase db=getReadableDatabase();
String selection= UserProfile.Users._ID+" = ?";
String[] selectionArgs={Integer.toString(id)};
int count=db.delete(UserProfile.Users.TABLE_NAME,selection,selectionArgs);
if(count>0)
return true;
else
return false;
}
}
答案 3 :(得分:-1)
public boolean deleteInfo(int id) {
SQLiteDatabase db=getReadableDatabase();
String selection= UserProfile.Users._ID+" = ?";
String[] selectionArgs={Integer.toString(id)};
int count=db.delete(UserProfile.Users.TABLE_NAME,selection,selectionArgs);
if(count>0)
return true;
else
return false;
}